【问题标题】:JSON Schema to GraphQL schema converters [closed]JSON Schema 到 GraphQL 模式转换器 [关闭]
【发布时间】:2016-11-15 07:39:22
【问题描述】:

是否有任何适配器将 JSON Schema 模式(例如从 Swagger)转换为 GraphQL 模式? 甚至还有一篇关于环绕 REST http://graphql.org/blog/rest-api-graphql-wrapper/ 的官方文章,但通常 REST 已经描述过,并且 Swagger 是它最流行的格式。 如果已经有实现,我不想自己写。

【问题讨论】:

  • 完全合理的问题。

标签: swagger graphql jsonschema


【解决方案1】:

实际上,几个月前我花了一些时间来尝试这个。您可以在此处阅读我的帖子详细说明结果:https://medium.com/apollo-stack/will-graphql-replace-rest-documentation-f1a55092ef9d#.m50im46o0

在查看了许多在线可用的 Swagger 模式之后,我认为 Swagger 或类似的 API 描述语言可以作为定义 GraphQL 模式的良好起点,但它们通常不包含足够的信息来生成模式他们自己的。具体来说,通常没有足够的关于对象之间关系的数据。

如果您想从 JSON 格式的模式描述开始,您需要做的就是编写一些代码,在 Swagger 中循环您的不同数据类型,并生成 GraphQLObjectType 对象。您可以在我上面链接的博客文章的示例存储库中看到一个简单的方法:https://github.com/apollostack/swapi-rest-graphql/blob/951e50ec29732c93e7aa0bc6880210fdd1816a2f/schema.js#L28

基本上,您只是将一种格式的数据转换为另一种格式,然后您需要在数据之间添加一些关系(外键、ID 等),并添加一些根查询来创建入口点。对于 REST API,让您的单个和多个资源端点充当您的根查询字段通常是有意义的。

【讨论】:

    【解决方案2】:

    我还写了一个库,如果你使用 Swagger,它允许你包装现有的 REST API。

    https://github.com/yarax/swagger-to-graphql

    它基本上将Swagger 模式映射到 GraphQL 类型。

    还有一篇关于这种方法的文章和库https://medium.com/@raxwunter/moving-existing-api-from-rest-to-graphql-205bab22c184

    【讨论】:

    • 但这仅适用于类型对吗?可以映射完整的合约(消息参数等)吗?
    • 映射 API 工作所需的一切
    【解决方案3】:

    同时已经实现了几个工具来将 JSON Schema 转换为 GraphQL Schema:

    【讨论】:

    • 有谁知道是否有类似的Java工具?我在网上找遍了,一无所获。
    猜你喜欢
    • 1970-01-01
    • 2020-02-23
    • 2017-07-24
    • 2015-06-22
    • 1970-01-01
    • 2016-07-08
    • 2019-02-16
    • 2020-11-05
    • 2011-10-23
    相关资源
    最近更新 更多