JSON Schema转换成GraphQL schema的转换器

18

是否有将 JSON Schema schema(例如来自 Swagger)转换为 GraphQL schema 的适配器?甚至有一篇官方文章介绍如何包装 REST http://graphql.org/blog/rest-api-graphql-wrapper/,但通常 REST 已经被描述了,Swagger 是其中最流行的格式。如果已经存在实现,就不想自己编写。


1
完全合理的问题。 - Joshua Cook
3个回答

14

我几个月前曾花费时间尝试过这个。你可以阅读我的博文,详细了解结果: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,将单个和多个资源端点作为根查询字段通常是有意义的。


7

但这只是针对类型的,完整的合同(消息参数等)可以映射吗? - yucer
使API工作所需的一切都已映射。 - Rax Wunter

4

有没有人知道是否有类似的Java工具?我在网上找了很久,什么都没找到。 - Marcin Rzepecki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接