为中继自动生成 graphql 模式(石墨烯服务器)
Posted
技术标签:
【中文标题】为中继自动生成 graphql 模式(石墨烯服务器)【英文标题】:Auto-generating a graphql schema for relay (Graphene server) 【发布时间】:2018-03-30 06:17:24 【问题描述】:我是 Relay 的新手,正在尝试组合我的第一个应用程序。我已经有一个 GraphQL 服务器(使用 Graphene),它由 PostgreSQL DB 通过 SQLAlchemy 自动映射支持,并作为 Flask 应用程序发布。现在,我正在尝试将前端放在一起,看起来中继编译器在客户端需要一个 GraphQL 模式文件。我想知道是否有办法让这个模式文件动态自动生成,以及如何设置。
我使用https://github.com/kriasoft/react-static-boilerplate 作为我的应用程序的起点。
谢谢。
【问题讨论】:
【参考方案1】:浏览完 Graphene 代码库后,我在 graphql-python 的 utils 模块中找到了 schema_printer,它为我完成了这项工作:
import json
from schema import schema
import sys
from graphql.utils import schema_printer
my_schema_str = schema_printer.print_schema(schema)
fp = open("schema.graphql", "w")
fp.write(my_schema_str)
fp.close()
【讨论】:
如何运行这个脚本?【参考方案2】:对我来说,https://docs.graphene-python.org/projects/django/en/latest/introspection/ 很有帮助。 在我的例子中,架构是在 apiApp 的 schema.py 文件中定义的,因此检索 schema.json 的命令如下。
./manage.py graphql_schema --schema apiApp.schema.schema --out schema.json
【讨论】:
以上是关于为中继自动生成 graphql 模式(石墨烯服务器)的主要内容,如果未能解决你的问题,请参考以下文章