Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从json响应生成Graphql模式

从json响应生成Graphql模式
EN

Stack Overflow用户
提问于 2018-11-17 07:40:21
回答 2查看 1.9K关注 0票数 5

我使用阿波罗服务器2.0作为rest上的graphql聚合层(不同的微服务)。

我希望直接从微服务的api响应中生成graphql模式,而不是手工编写它们,这很容易出错。

如果我的api响应是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const restApiResponse = {
  "id": 512,
  "personName": "Caribbean T20 2016",
  "personShortName": "caribbean-t20 2016",
  "startDate": "2016-06-29T19:30:00.000Z",
  "endDate": "2016-08-08T18:29:59.000Z",
  "status": 0,
};

然后,我想根据提供的typeName (例如Person )生成下面的模式-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
type Person {
  id: Float
  personName: String
  personShortName: String
  startDate: String
  endDate: String
  status: Float
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-21 21:15:28

最后,经过大量的搜索和查找,我为自己写了一个脚本-

这有一些小的问题,例如int被解析为浮点数,但这很好,因为如果需要的话,我可以用int替换它们。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const { composeWithJson } = require('graphql-compose-json');
const { GQC } = require('graphql-compose');
const { printSchema } = require('graphql'); // CommonJS


const restApiResponse = {
    "id": 399,
    "templateId": 115,
    "amount": 100000,
    "amountINR": 100000,
    "amountUSD": 0,
    "currencyCode": "INR",
    "createdAt": "2018-06-07T00:08:28.000Z",
    "createdBy": 36,
};

const GqlType = composeWithJson('Template', restApiResponse);
const PersonGraphQLType = GqlType.getType();

GqlType.addResolver({
    name: 'findById',
    type: GqlType,
    args: {
      id: 'Int!',
    },
    resolve: rp => {
    },
  });

  GQC.rootQuery().addFields({
    person: GqlType.getResolver('findById'),
  });

const schema = GQC.buildSchema();

console.log(printSchema(schema));

,它生成类似于-的输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
type Template {
  id: Float
  templateId: Float
  amount: Float
  amountINR: Float
  amountUSD: Float
  currencyCode: String
  createdAt: String
  createdBy: Float
}
票数 3
EN

Stack Overflow用户

发布于 2018-11-19 10:30:46

这并不能真正回答你的问题,但我建议你不要这样做。GraphQL将自己定义为“毫无歉意的客户驱动”,这意味着您定义的每个查询都应该明确地定义为客户特别想要的内容。如果您只有平面数据,则不需要GraphQL,REST就足够了。如果不这样做,则需要按照客户端所需的方式精心制作和具体嵌套数据,并对您的UI有意义。有很多工具可以使这更容易,但我建议不要你要求什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53352739

复制
相关文章
Go Web编程--解析JSON请求和生成JSON响应
现在无论是网站、App、小程序还是移动端H5页面应用,都是采用前端与后端单独部署,相互之间以API接口交互的形式构建而成的。因为在结合可读性、编码数据大小和开发者使用难度上都JSON格式是一个比较好的选择,所以接口的数据格式通常都采用JSON,即前端在发送POST,PUT,PATCH请求添加,更改数据时会把数据以JSON格式放到请求的Body中。而后端则是所有数据都会以JSON格式返回。
KevinYan
2020/04/08
3.8K0
GraphQL实践8——Netflix Dgs Graphql代码生成
DGS官方开发了识别schema配置生成对应类型、测试类的代码生成器,而Maven插件则由社区维护
F嘉阳
2022/10/31
1.2K0
Meteor开发指南 — 响应式GraphQL
原文来自Kadira Voice,标题为「Meteor’s Reactive GraphQL Is Just Awesome」。 Meteor正在着手开发一套响应式的GraphQL实现,他们在前几天放出了一份high-level technical documentation。这篇文章是该设计文档的总结和我对这个项目的一些想法。 这是 GraphQL GraphQL 是一个Facebook提出的应用层的查询语言。它有许多的伴随工具和库,比如Relay,GraphiQL,和express-graphql。同时
时见疏星
2018/06/01
1K0
从Rest到Graphql
这时候前端MM拿到这个结果后,傻了眼!这里怎么能直接返回author_id呢,难道直接把author_id显示在界面上么?不可能啊,界面上要显示的是author_name才行!
用户6884826
2021/07/08
5661
GraphQL语法用于模式验证和代码生成的新方法
Nav Inc.已经创建了一个开源模式定义和代码生成器,它使用GraphQL语法来定义事件和消息格式。选择GraphQL是因为它的表达能力和对开发人员的熟悉程度;Nav模式体系结构(NSA)不使用GraphQL runtime。
小柔
2023/10/14
2080
@ResponseBody响应JSON 406
搭建SpringMVC(4.1),但是搭建完成以后发现使用@ResponseBody的ajax无法访问,总是出现406的问题。 首先怀疑的是配置问题,经过查明,影响SpringMVC的@ResponseBody注解的是:         <mvc:annotation-driven />,我发现我的配置中存在这个注解。同时又使用Spring文档中的自动配置相关解析类的方式再进行测试,发现还是没有解决问题。 同时在网上找到相关问题,发现是缺失jackson的jar。 <dependency>         
冷冷
2018/02/08
1.1K0
用于从 JSON 响应中提取单个值的 Python 程序
值提取是一个非常流行的编程概念,它用于各种操作。但是,从 JSON 响应中提取值是一个完全不同的概念。它帮助我们构建逻辑并在复杂数据集中定位特定值。本文将介绍可用于从 JSON 响应中提取单个值的各种方法。在开始值提取之前,让我们重点了解 JSON 响应的含义。
很酷的站长
2023/08/11
2110
用于从 JSON 响应中提取单个值的 Python 程序
GraphQL 从入门到实践
本文首先介绍了 GraphQL,再通过 MongoDB + graphql + graph-pack 的组合实战应用 GraphQL,详细阐述如何使用 GraphQL 来进行增删改查和数据订阅推送,并附有使用示例,边用边学印象深刻~
前端下午茶
2019/06/27
2.5K0
GraphQL 从入门到实践
GraphQL 浅谈,从理解 Graph 开始
前言 GraphQL is a data query language developed internally by Facebook in 2012 before being publicly released in 2015. It provides an alternative to RESTful architectures. —— from wikipedia. GraphQL 是 Facebook 于 2012 年在内部开发的数据查询语言,在 2015 年开源,旨在提供 RESTful 架构体
企鹅号小编
2018/01/15
1.5K0
GraphQL 浅谈,从理解 Graph 开始
SpringMVC ResponseBody响应json数据
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
多凡
2019/11/01
8280
通过SpringMVC框架响应JSON数据
在SpringMVC框架(含SpringBoot框架)中,当处理请求的方法之前添加了@ResponseBody后,或在控制器类之前使用的是@RestController,处理请求的方法的返回值将作为响应到客户端的数据。
海拥
2021/08/23
1.2K0
Java生成Soap请求响应实体,Java 生成wsdl请求响应实体
Soap技术过于陈旧,2023还能遇见,真是日了狗了。手动创建XML实体不知何年何月可以创建完成,工欲善其事必先利其器,上插件。
高久峰
2023/10/12
3780
使用 GraphQL 和 Ballerina 操作多个数据源
作者 | Anupama Pathirage 译者 | 明知山 策划 | 丁晓昀 在当今的数字转型时代,应用程序和 Web 服务之间的相互对话是不可避免的,我们需要通过 API 来实现这些应用程序之间的通信。各种协议和规范定义了消息通过网络传递的语义和语法,最终形成了一种 API 架构。 在本文中,我们将探讨如何使用 GraphQL 和 Ballerina 将 MySQL 数据库中的数据作为 API 公开出来。GraphQL 是一种抽象了底层数据源的规范,借助 GraphQL,开发人员能够灵活地使
深度学习与Python
2023/03/29
2.4K0
使用 GraphQL 和 Ballerina 操作多个数据源
从观察者模式到响应式的设计原理
响应式对使用过 Vue 或 RxJS 的小伙伴来说,应该都不会陌生。响应式也是 Vue 的核心功能特性之一,因此如果要想掌握 Vue,我们就必须深刻理解响应式。接下来阿宝哥将从观察者模式说起,然后结合 observer-util 这个库,带大家一起深入学习响应式的原理。
阿宝哥
2021/02/02
1K0
为什么我使用 GraphQL 而放弃 REST API?
本文最初发布于 Max Desiatov 的个人博客,经原作者授权由 InfoQ 中文站翻译并分享。
winty
2021/05/19
2.3K0
json生成html表格
demo data = {"column_name":["name", "age", "sex"], "column": [["Jack", "25", "male"], ["Rebot","18", "male"]]} col_ks = data.get("column_name") col_vs = data.get("column") def dict_to_table(ks, vs): """ desc: dict2html_table ""
Spaceack
2020/11/04
9.1K0
json生成html表格
spark sql 生成 json
想通过 spark sql 查询 hive 表然后将相应的字段组装成 sql,类似于 json_object ,不过可惜的是 spark 3.1.x 并没有 json_object 函数,不过还好spark sql 有 to_json 函数
shengjk1
2022/06/22
1.5K0
Flask 使用json或者jsonify返回json响应数据的方法
在前后端分离的时代,后端一般返回前端的数据就是json格式的响应数据。 而json格式的响应数据其实实际上就是一个字符串。
Devops海洋的渔夫
2019/12/02
17.4K0
[已解决]wordpress网站发布失败:此响应不是合法的JSON响应
前两天,用WordPress搭建这个博客(https://wpthemes.pythonthree.com),服务器是阿里云香港服务器,使用宝塔控制面板,但是,当进去Wordpress后台发表文章的时候,出现了如下报错: WordPress 发布失败。错误信息:此响应不是合法的JSON响应。
晓得博客
2021/01/05
11.7K1
点击加载更多

相似问题

Graphql -从生成的JSON文件创建模式

10

如何从GraphQL模式生成GraphQL操作

113

从GraphQL生成TypeScript模式?

12

从GraphQL查询获取JSON响应

11

如何从GraphQL模式生成JavaDTO?

128
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文