前言
随着前端技术的发展,越来越多的项目开始采用前后端分离的架构,前端部分独立出来,变成了一个单独的项目,这些项目的核心就是一些接口。前端项目需要通过这些接口与后端进行通信从而得到必要的数据。
graphql是一种新型的数据查询语言,可以满足前端项目查询数据的各种需求。而apollo-server-koa作为一个强大的graphql服务器,可以帮助我们更快、更好地建立graphql服务器,提供良好的开发体验。
在本篇文章中,我们会介绍如何使用npm包apollo-server-koa来实现一个graphql服务器。
apollo-server-koa简介
apollo-server-koa是apollo-server的一个koa中间件库,可以将graphql服务器挂在koa应用程序的子路径下。同时,这个库支持以下特性:
- 支持GraphQL Playground,能够在Playground界面上执行查询操作;
- 支持扩展类型、数据源并生成schema;
- 支持Apollo Server的所有特性。
安装
我们可以使用npm来安装apollo-server-koa:
npm install apollo-server-koa --save
接下来我们可以在koa的应用程序中使用apollo-server-koa。
使用
我们需要在koa的应用程序代码中引入apollo-server-koa,然后使用它来创建graphql服务器。
-- -------------------- ---- ------- ----- --- - --------------- ----- - ------------- --- - - ----------------------------- ----- -------- - ---- ---- ----- - ------ ------ - -- ----- --------- - - ------ - ------ -- -- ------ -------- -- -- ----- ------ - --- -------------- --------- --------- --- ----- --- - --- ------ ------------------------ --- --- ---------------- -- -- - ------------------- -- --------- -- -------------------------------- ---展开代码
使用apollo-server-koa创建graphql服务器需要两个参数:typeDefs和resolvers。
在typeDefs中,我们定义了一个Query类型,它包含了一个hello字段,返回字符串类型的数据。
在resolvers中,我们编写了一个hello resolver,它接收一个参数并返回'Hello world!'字符串。
最后我们使用Koa创建了一个应用程序实例,调用server.applyMiddleware({ app })将graphql服务器挂在到这个实例上。
调试
访问http://localhost:3000/graphql 将看到Apollo Server的Playground。
在查询编辑器中输入以下查询:
{ hello }
点击运行按钮,我们将在结果面板中看到结果:
{ "data": { "hello": "Hello world!" } }
总结
通过npm包apollo-server-koa,我们可以很方便的实现一个graphql服务器,提供数据查询服务。当然,以上只是一个简单的例子,我们可以根据自己的项目需求,编写定制化的解析器和数据接口,来满足自己的查询需求。希望这篇文章对使用apollo-server-koa的开发者能够有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/112149