10月8日至10日加入我们,参加纽约市的 GraphQL 联邦和 API 平台工程最新的技巧、趋势和新闻。参加 2024 年纽约市的 GraphQL 大会
文档
免费开始
您正在查看该软件旧版本的文档。 切换到最新稳定版本。

Apollo Kotlin 中的 GraphQL 文件类型


支持以下文件类型用于 定义:

  • .json 用于 内省模式
  • .graphqls 用于 SDL 模式
  • .graphql 用于 操作 (查询、]

模式

一个 模式 描述了一个图的数据类型以及这些类型之间的关系。Apollo Kotlin 支持通过内省内省获得的 JSON 模式,以及传统的 SDL 模式

内省模式(.json

您可以通过一个特殊的 内省查询(假设服务器启用了 )来获得 GraphQL 服务器的模式。与任何其他 GraphQL 服务器响应一样,返回的模式以类似于下面的 JSON 格式提供:

schema.json
{
"data": {
"__schema": {
"queryType": {
"name": "Query"
},
"mutationType": {
"name": "Mutation"
},
"types": [...]
}
}
}

一些 JSON 架构省略了顶层data Apollo Kotlin支持这种省略。

Apollo 空间站这样的工具可以自动分析 GraphQL 服务器,并允许您以 JSON(或 SDL)格式下载其架构。Apollo Kotlin也可以使用以下 Gradle 任务下载分析过的架构: downloadApolloSchema

./gradlew :app:downloadApolloSchema \
--endpoint "https://example.com/graphql" \
--schema schema.json

JSON introspection schemas are verbose and difficult to read or modify. For simplicity, you should consider JSON schemas read-only and convert them to SDL schemas if you need to make changes.

SDL schemas (.graphqls)

SDL () is the canonical language for defining as defined in the GraphQL spec. It's much cleaner and more expressive than JSON for understanding a schema's structure. It also supports , unlike the JSON representation (see this issue):

schema.graphqls
type schema {
query: Query
mutation: Mutation
}
type Query {
field: String @deprecated
...
}

您无法直接从 GraphQL 端点下载 SDL Schema,但 Apollo Kotlin 可以在指定 --schema 选项中的 .graphqls 扩展名后自动将 introspection schema 转换为 SDL:

./gradlew :app:downloadApolloSchema \
--endpoint "https://example.com/graphql" \
--schema schema.graphqls

Apollo Kotlin 还支持 .sdl 文件扩展名用于 SDL Schema,但很少有其他工具使用 .sdl。您随后应继续使用 .graphqls

操作(.graphql)

GraphQL 操作是针对图(graph)来获取或修改数据的。

在 Apollo Kotlin 中, 文件使用 .graphql(不带单引号)扩展名。这些文件只包含可执行定义(查询、指令、订阅和/或片段)

MyQuery.graphql
query MyQuery {
field1
field2
...
}

Apollo Kotlin 将这些操作编译成类型安全的模型,以便您在运行时使用。

上一页
11. 编写您的第一个订阅
下一页
客户端意识
评分文章评分

©2024Apollo Graph Inc.,以Apollo GraphQL的名义。

隐私政策

公司