用强类型语言GraphQL增强React

          翻译|李梦      审校|冬雨      GraphQL、React这两项技术都来自Facebook,它们共同成长。在本文中,ShaneStillwell展示了GraphQL作为一种强类型的基于JavaScript的语言,如何帮助开发者与他们的数据建立联系并改善跨服务边界的封送处理。GraphQL是可扩展的,并可与REST共存,可以在任意后端软件中实现。      一、要点  

把GraphQL和React放在一起就如同巧克力配花生酱,味道好极了。

GraphQL可以帮你编写出强表达性的查询来从API精确拉取数据。

GraphQL类型系统是非常强大的,可以为API进行验证并集成灵活的查询。

有时你可能仍然需要REST,没关系,它们是可以和平共处的。

GraphQL可以在任何后端软件中实现,那么要如何将GraphQL集成到后端服务中呢?

在波士顿的一间办公室里,我、PacMan女士还有坐在我对面的客户Greg正围着乒乓球桌喝啤酒。Greg在相关业务上浸淫已久,是个令人钦佩的开发者。他直截了当地问我:“GraphQL有没有为生产环境做好准备?”

这么问也很合理,因为他从来没用过GraphQL。而事实上,GraphQL在年才开源,年才真正作为标准实施。除了Facebook,还有没有人真正在使用GraphQL呢?Greg和他的团队都非常熟悉REST,他们在过去几年里用REST构建过好几个应用。他们还使用Swagger来进行验证和文档生成,而且也用的很顺手。所以,他才会质疑GraphQL是否真的是最好的应用程序通信管道。

在回答Greg的问题之前,我们先回到GraphQL本身。

    二、开门见山,GraphQL是什么?  

GraphQL内涵丰富,它是一个流行词。酷小孩们用它,所以有人认为它只是昙花一现,就像今天的technobabel、shiny、newhotness等等酷酷的形容词。但是我保证绝非如此。

    1.首先,GraphQL不是什么?  

在继续之前,先来消除一些关于GraphQL的常见误解。

误解:客户端可以任何方式请求任何数据。例如某一客户端想要所有的用户和他们最爱的冰淇淋类型。只要服务器端的模式定义了这个关系是就能实现。

真相:客户端将受限于GraphQL服务器端定义的数据关系。

误解:GraaphQL是否兼容MSSQL?不兼容,它也不兼容MongoDB、Oracle、MySQL、PostgreSQL、Redis、CouchDB和Elasticsearch。

真相:GraphQL并不直接对接数据库。它接收来自客户端的请求,然后由后端软件通过请求数据来查询数据存储,并返回与GraphQL模式格式相容的数据。

误解:GraphQL和REST你必须二选一。胡说。真相:可以轻松地在服务器端同时提供它们。

    2.GraphQL是一种强类型语言  

说真的,GraphQL是一种语言?那当然!先来看看下面这些简单的定义,这是一个缩略图的定义。

typeThumbnail{#图片的URL,!表示必需uri:String!#宽度(像素)width:Int#高度(像素)height:Int#作为图片title标签的字符串title:String}

如你所见,以上定义了一个名为Thumbnail的类型或对象。这个对象有几个属性,其中url是一个string,width和height是整数,title也是一个string。

这里有一个很棒的GraphQL语言参考手册(







































预防白癜风复发最有效的方法
北京看白癜风最好医院的地方



转载请注明:http://www.sxjujiatang.com/ppmx/8785.html


当前时间: