【问题标题】:How to generate Typescript definitions from AppSync GraphQL schema if I am not using amplify?如果我不使用放大,如何从 AppSync GraphQL 架构生成 Typescript 定义?
【发布时间】:2021-03-28 05:25:23
【问题描述】:

我使用 aws-cdk 设置了我的 AppSync api,但没有使用他们的放大框架。我试图弄清楚如何/是否可以在不使用放大的情况下从我的 AppSync schema.graphql 文件生成 Typescript 定义,即无法访问 amplify codegen 命令。我确实尝试安装和运行它,但我假设 amplify 期望文件位于某些目录中,因此失败了。

我查看了https://graphql-code-generator.com,但由于 AppSync 使用的特殊类型(如 AWSDateTime),它无法工作,解决此问题的方法是发布 api 并从 graphql 端点获取架构,但这并不理想,即我'希望能够在不发布架构的情况下在本地生成这些类型。

这可行吗?

【问题讨论】:

  • 我还在放大工作流程之外使用 CDK。我使用了:“amplify add codegen --apiId xxxxxxxxx” ... 它允许选择 Typescript 作为生成选项。

标签: typescript graphql aws-amplify aws-appsync graphql-codegen


【解决方案1】:

如果有一些自定义标量(例如 AWSDateTime)不属于您的 schema.graphql 文件,您可以创建一个单独的文件(例如 scalars.graphql)并自己添加那些缺少的类型定义:

scalar AWSDateTime
scalar AWSPhone
scalar AWSJSON

然后只需将一个 glob 传递给与这两个文件匹配的 GraphQL 代码生成器——它们将被组合成一个模式。

【讨论】:

    猜你喜欢
    • 2019-03-30
    • 2020-05-19
    • 2021-03-10
    • 2019-04-15
    • 2020-08-20
    • 2019-04-14
    • 2018-12-07
    • 2019-04-05
    相关资源
    最近更新 更多