首页 文章

从GUI生成Schema和Schema的GraphQL GUI

提问于
浏览
1

虽然使用GraphiQL运行良好,我的老板要求我实现一个用户界面,用户可以通过UI元素(如复选框, Map 关系)检查呈现给他们的元素,并获取数据并执行此操作将为此人生成graphql输入, API并将结果返回给用户 .

所以,基本上这涉及2代 . 从GraphQL架构生成用户界面,并从用户的选择中生成GraphQL输入查询 .

我搜索过,但我找不到任何已经做过这个的工具 . 我的服务器在Node中,我正在使用Express GraphQL . 我使用https://github.com/graphql-cli/graphql-cli将我的快速模式转换为GraphQLSchema语言,并使用https://github.com/sheerun/graphqlviz/blob/master/cli.js中的introspect函数对GraphQLSchema语言进行了内省 .

我得到的对象是这样的(下面给出了部分模式输出)`

"data": {
        "__schema": {
            "queryType": {
                "name": "Query"
            },
            "mutationType": {
                "name": "Mutation"
            },
            "subscriptionType": null,
            "types": [{
                "kind": "OBJECT",
                "name": "Query",
                "description": null,
                "fields": [{
                    "name": "employee",
                    "description": null,
                    "args": [{
                        "name": "ecode",
                        "description": null,
                        "type": {
                            "kind": "SCALAR",
                            "name": "String",
                            "ofType": null
                        },
                        "defaultValue": null
                    }],

`

我正在循环尝试生成UI的元素,但我很困惑 .

做这个的最好方式是什么?提前致谢 .

1 回答

  • 1

    对于从内省查询生成ui的部分,我认为响应包含足够的ui足够的数据(每个字段的描述可以用作每个字段的占位符's input box). If you'请问如何从中生成动态表单内省响应,你可以看看其他项目创建变形金刚从json到html表单的灵感/用法(看看https://github.com/brutusin/json-forms/blob/master/README.md#cdn) . 对于复杂的领域(不是原始类型),你可能需要做更多的工作 .

    对于从ui生成模式,您可以使用任何查询构建器工具,并根据用户输入构建查询 . 每个组合框将映射到特定的SCHEMANAME.FIELDNAME,该值将是输入框的值 .

    我希望它有所帮助 . 顺便说一句,这听起来像一个有趣的工具,所以如果你成功了,请告诉我们!

相关问题