gpt4 book ai didi

graphql - apollo-codegen 输出为空

转载 作者:行者123 更新时间:2023-12-01 01:52:05 25 4
gpt4 key购买 nike

我遇到了 apollo-codegen 未成功生成 typescript 代码的情况。

对于 graphql 文件( generated/schema.graphql ):

type Author {
id: Int!
firstName: String
lastName: String
posts: [Post]
}

type Post {
id: Int!
title: String
author: Author
votes: Int
}

然后我运行:
$apollo-codegen introspect-schema generated/schema.graphql --output generated/schema.json
这会生成一个 ./generated/schema.json似乎包含相关信息(我看到有关 Author 及其属性的信息,以及 Post 及其属性的信息)。

然后我跑
$apollo-codegen generate generated/schema.graphql --schema generated/schema.json --target typescript并获得(有效)空输出。
//  This file was automatically generated and should not be edited.
/* tslint:disable */
/* tslint:enable */

我也尝试过生成 .swift 文件,并具有类似的空输出。

Apollo 代码生成版本是:
"apollo-codegen": "^0.11.2",

有人看看我做错了什么吗?

最佳答案

我是 apollo-codegen 的合作者.很高兴听到你尝试一下!

您没有看到任何输出,因为 apollo-codegen 根据项目中的 GraphQL 操作(查询、变异)生成类型——而不仅仅是基于模式中的类型。

根据我们的经验,您很少会发送完整 GraphQL 类型的查询。相反,我们发现基于 graphql 操作的类型是最有用的。

例如,给定您提供的类型,您可以编写一个查询:

query AuthorQuery {
authors {
firstName,
lastName
}
}

将生成的类型(并且您可能希望在使用此查询结果的代码中使用的是
type AuthorQuery = {
authors: Array<{
firstName: string,
lastName: string
}>
}

请注意您将如何使用 AuthorQuery输入您的 React 组件(或类似组件),而您不会使用 Author类型,因为它将包含比您实际请求的更多的字段。

但是,如果您确实有从 graphql 模式到 typescript 的 1:1 类型的用例,请在项目本身上提出问题,我很乐意在那里进行讨论:)

关于graphql - apollo-codegen 输出为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43688491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com