当前位置: 首页 > 知识库问答 >
问题:

从架构生成GraphQL GUI,从GUI生成架构

董意蕴
2023-03-14

虽然使用GraphiQL效果很好,但我的老板要求我实现一个用户界面,用户可以通过诸如checkbox、map relationships之类的UI元素检查呈现给他们的元素,并获取数据,这样做将为用户生成GraphiQL输入,调用API并将结果返回给用户。

所以,基本上这涉及到两代人。从GraphQL模式生成用户界面,并从用户的选择生成GraphQL输入查询。

我搜索了一下,但没有找到任何工具已经做到了这一点。我的服务器在节点,我正在使用Express GraphQL。我使用https://github.com/graphql-cli/graphql-cli将我的表达式模式转换为GraphQLSchema语言,并使用https://github.com/sheerun/graphqlviz/blob/master/cli.js的内省函数内省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个答案

黄昊
2023-03-14

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

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

我希望这有点帮助。顺便说一句,这听起来像一个有趣的工具,所以让我们知道如果你成功了!

 类似资料:
  • 问题内容: 是否有可用于Eclipse或Netbeans或任何其他IDE的插件,可以通过直接从数据库中读取模式来帮助我生成hbm.xml。 编写这些XML似乎是不必要的时间浪费,因此应该自动进行。 问题答案: 对于NetBeans,请参阅在Web应用程序中使用hibernate。 对于Eclipse,请使用Hibernate Tools 插件。这是一个演示如何使用其 逆向工程 功能的教程。

  • 嗨,我是NetBeans IDE的新手,我正在使用NetBeans GUI构建器创建我的GUI。我正在创建新文件,方法是右键单击包,单击new然后单击new JFrame Form。它工作得很好。但是我有一个带有JFrame的java文件,我可以通过编码手动创建它,我可以将它导入到GUI构建器中,这样我就可以拖放和创建GUI了。如果是,我该怎么做?(在eclipse中,我们可以右键单击该文件,然后

  • 我试图通过使用WSDL URL生成一个模式,但失败了,得到了这个错误代码: 目标组织的执行默认值。jvnet。jaxb2。maven2:maven-jaxb2-plugin:0.12.3:generate failed:plugin org。jvnet。jaxb2。maven2:maven-jaxb2-plugin:0.12.3或其依赖项之一无法解析:无法解析以下工件:org。jvnet。jaxb

  • 我正在Clojure中开发一个简单的hello world web应用程序。但是,在我将模式库添加到我的项目之后,当我试图使用构建一个uberjar时,我开始出现以下错误。奇怪的是,在使用启动时,应用程序仍然通过单元测试,并且运行时没有错误。 下面是我使用schema的源文件。为了简洁起见,我省略了其余的源文件,但如果有人想查看其余的文件,请直接询问。 我已经尝试过禁用AOT编译,因为这似乎是正常

  • 我目前使用的是带有hibernate3-maven-plugin的Hibernate 3.6.9。我使用目标hbm2ddl来生成一个sql模式文件。 该插件不支持Hibernate 4.1.2。如何生成架构文件?

  • 我有openapi合同: 在此结构中: 在主s.json我有一些参考另一个json这样: 当我尝试使用openapi-Generer-maven-plugin打包它时: 我得到一个警告和构建错误: openapi可以像我一样使用ref生成代码吗?或者我需要重构json模式并删除这个ref?也许将其连接在一个文件中或类似的东西中