如何使用Apollo工具为包括Apollo @client和@rest指令的查询生成Typescript类型?

时间:2019-10-10 09:21:06

标签: typescript graphql apollo apollo-client

我在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

我不明白我在做什么错。根据{{​​3}}的说法,Apollo应该开箱即用地支持@client@rest客户端指令。

有人通过@rest@client伪指令成功生成查询类型吗?

1 个答案:

答案 0 :(得分:0)

嗯,一堆文档页以后,看来如果我在src/schema.graphql中按如下方式声明该指令,它似乎可以工作:

directive @rest(
    type: String!
    path: String!
    method: String
) on FIELD

注意:此声明不包括所有可能的参数。请参阅docs for the complete list of arguments

任何人都可以确认这是正确的方法吗?