在上一篇文章中,我们讨论了GraphQL与REST相比的优势。 在本文中,我们将看到GraphQL的实际应用。 我创建了一个示例应用程序来展示REST和GraphQL之间的差异。 首先,我们将看到简单产品详细信息终点的REST实现。 我已经使用Spring Boot演示REST。 下载示例项目,并按照README中概述的步骤设置项目。 我不在这里讨论设置细节,因为它超出了本文的范围。 假设您的项目已启动并正在运行,以调用http:// localhost:8080 / product / {product_id}端点以获取产品详细信息JSON,如下所示。


如果您在JSON之上看到,虽然我们对给定产品的所有元素都不感兴趣,但我们正在获取包括评论和技术规格在内的整个产品JSON。

现在,我们将通过有选择地获取产品详细信息来了解GraphQL的实际应用。 为了再次演示GraphQL,我使用了Spring Boot。 下载示例项目,并按照README中概述的步骤设置项目。 我不在这里讨论设置细节,因为它超出了本文的范围。 假设您的项目已启动并正在运行,以查看GraphQL的实际效果。 在这种情况下,我只想获取给定产品的产品ID,标题,简短描述和标价。 让我们看看如何查询以获取感兴趣的详细信息。


现在,作为服务消费者,我有兴趣获取产品ID,标题,简短描述,标价和评论。 在这种情况下,GraphQL提供了查询所需内容的灵活性。 当我们使用GraphQL时,请参见下面的查询和响应。


为了演示GraphQL,我使用了基于GUI的插件GraphiQL。 为了从其他应用程序消费,我们可以在application.properties中配置端点。

graphql.servlet.mapping=/graphql
graphql.servlet.enabled=true
graphql.servlet.corsEnabled=true

现在,我们可以通过传递URL编码的查询参数来调用上述端点,如下所示。 您可以了解有关查询和变异的更多信息https://graphql.org/learn/queries/


希望您喜欢这篇文章。 我将再来另一篇文章。 直到那时, 快乐学习!!!

翻译自: https://www.javacodegeeks.com/2019/03/ready-see-graphql-action.html

您准备好观看GraphQL了吗?相关推荐

  1. graphql 有必要吗_您准备好观看GraphQL了吗?

    graphql 有必要吗 在上一篇文章中,我们讨论了GraphQL与REST相比的优势. 在本文中,我们将看到GraphQL的实际应用. 我创建了一个示例应用程序来展示REST和GraphQL之间的差 ...

  2. [译] ⚛ React 状态管理工具博物馆

    原文地址:⚛ The React State Museum: ⚡️View the hottest state management libs for React 原文作者:Gant Laborde ...

  3. 排队论游乐场的游乐项目_外汇游乐场

    排队论游乐场的游乐项目 介绍 F X Playground是基于JavaFX的原型制作工具或实时编辑器,它消除了编译Java代码的步骤. 这个概念并不新鲜,例如在网络世界中,有许多HTML5 游乐场提 ...

  4. 18个月自学AI,2年写就三万字长文,过来人教你如何掌握这几个AI基础概念

    来源:机器之心 本文约30000字,建议阅读10分钟. 这是一篇真正针对初学者的 AI 教程,不只讲概念,还讲概念的底层原理. David Code 有多个身份:他是旅行作家,通晓多国语言,他还是一名 ...

  5. 论文翻译1-PARSEC-Streaming 360-Degree Videos Using Super-Resolution

    论文翻译-Streaming 360-Degree Videos Using Super-Resolution(2020infocom) 使用超高分辨率流式传输360度视频 关键词:360◦视频,AB ...

  6. 农产品电商如何做直播卖货?

    为了解决农产品滞销的问题,当地政府都开始与网络直播平台合作,直播卖农产品,据说销量都不错.那么在做农产品电商时,直播卖货具体要怎么做呢? 第一,需要提炼出农产品的优势. 在电商直播间中销售农产品,首先 ...

  7. 在线教育:直播授课在这三个阶段有哪些要看的?

    由于当前处于疫情的复发期,很多成功转型的教培机构也陆陆续续在线上开始直播授课,在教育直播的授课当中,有哪些要注意的事项吗? 1.直播准备 在直播前,老师要先备好课,然后将课件上传至直播平台中,再设置好 ...

  8. 51、流式音频之二(应用层)

    1.流式存储媒体 把注意力转移到网络应用,第一种情况针对早已存储在文件中的流媒体.最常见的例子是在Internet 上观看视频.这是视频点播( VoD, Video on Demand)的一种形式.其 ...

  9. 计算机小发明,生活小发明(日常生活中的20个超实用发明)

    生活小发明(日常生活中的20个超实用发明) 日复一日,在世界的任何地方,很多人都发明了许多有利于人们日常生活的新产品.它们不必是最复杂的发明,有时候甚至是简单的标记物都能够让我们发现令人惊讶和令人难以 ...

最新文章

  1. php mysql pdo use_PHP连接到mysql的方法--mysqli和PDO
  2. CVPR 2021 比CNN和Transformer更好的Backbone?伯克利谷歌提出BoTNet,精度达84.7%
  3. 【笔记】JAVA中的泛型和反射
  4. Bootstrap4+MySQL前后端综合实训-Day07-PM【用户信息管理页面——功能展示(分页显示数据、添加用户、批量删除用户、编辑用户信息)、servlet项目代码整理汇总】
  5. 用户、组以及相关文件说明
  6. jdbc连接mysql传参_将参数传递给JDBC PreparedStatement
  7. Linux内核系统架构介绍
  8. (102)FPGA面试题-如何选择FPGA型号?
  9. 基于Redis的限流系统的设计
  10. windows下多个静态库合并的方法
  11. mysql字段里面有16字节特殊字符替换
  12. MATLAB 人脸识别矩阵(矩阵、相似度)
  13. 如何下载免费高清Google谷歌卫星3D地图?
  14. 手把手教你 VSCode搭建STM32开发环境
  15. mybatis的startPage使用
  16. Cannot attach the file 'C:\Users\raye\Documents\(LocalDB)\MSSQLLocalDB.mdf' as database 'D:\DIY\DMS-
  17. 让IE浏览器打开JSON文件直接显示
  18. Spring MVC学习笔记
  19. IMM管理口收集日志
  20. iOS开发:苹果应用商店审核指南中文翻译

热门文章

  1. ssl2342-打击犯罪【并查集】
  2. 【AC自动机】屏蔽词删除(ybtoj AC自动机-4)
  3. 漫画算法:无序数组排序后的最大相邻差值
  4. ReactiveLodeBalancerClientFilter响应式负载均衡代理
  5. vue.js 01 模板语法
  6. 基本数据类型、包装类、String三者之间的相互转换
  7. Axios实现异步通信
  8. 学python后做什么工作好_学习完Python课程后可以做什么工作?
  9. 处理api返回的数据_API 乐队指挥家,网关服务正式上线
  10. docker export_docker使用简介