JSON架构到GraphQL架构转换器

Rax*_*ter 16 jsonschema swagger graphql

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

stu*_*ilo 13

几个月前我实际上花了一些时间来尝试这个.您可以在此处阅读详细说明结果的帖子: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,将单个和多个资源端点充当根查询字段通常是有意义的.


Rax*_*ter 7

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

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

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

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