如何使用 Apollo 工具为查询生成 Typescript 类型,包括 Apollo @client 和 @rest 指令?
Posted
技术标签:
【中文标题】如何使用 Apollo 工具为查询生成 Typescript 类型,包括 Apollo @client 和 @rest 指令?【英文标题】:How to generate Typescript types for queries including Apollo @client and @rest directives using Apollo tooling? 【发布时间】:2020-02-07 16:47:57 【问题描述】:我在src/schema.graphql
中有一个客户端架构,在src/graphql/queries.ts
中有一些查询。
目前,我的所有查询都包括@rest directive from apollo-link-rest,我正在尝试使用apollo client:codegen
使用以下命令为它们生成Typescript 类型:
apollo client:codegen ./src/__generated__/types.ts --outputFlat --includes=./src/**/queries.ts --addTypename --localSchemaFile=./src/schema.graphql --target=typescript
这总是会导致
.../src/graphql/queries.ts: Unknown directive "rest".
ToolError: Validation of GraphQL query document failed
我不明白我做错了什么。根据the docs here Apollo 应该支持@client
和@rest
开箱即用的客户端指令。
有没有人使用@rest
或@client
指令成功生成查询类型?
【问题讨论】:
【参考方案1】:嗯,后面是一堆文档页面,如果我在src/schema.graphql
中声明指令如下,它似乎可以工作:
directive @rest(
type: String!
path: String!
method: String
) on FIELD
注意:此声明不包括所有可能的参数。参考docs for the complete list of arguments。
谁能确认这是正确的做法?
【讨论】:
以上是关于如何使用 Apollo 工具为查询生成 Typescript 类型,包括 Apollo @client 和 @rest 指令?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Apollo Rover + Codegen 生成打字稿模式类型
Apollo Graphql 界面 - 从查询中创建可共享的 URL
Apollo GraphQL iOS - 尝试在查询中使用“ID”时出现“未找到生成的操作”错误