Meh*_*lal 17 node.js graphql apollo-server
我想构建一个应用程序并推荐使用 GraphQl 作为 API,
我不确定选择哪个平台以及有什么区别。
apollo server vs express-graphql
Run Code Online (Sandbox Code Playgroud)
我也需要在项目中使用 TypeScript。任何好主意将不胜感激。
jmu*_*rzy 10
以下是apollo-server 自述文件中现已删除的部分,比较apollo-server和express-graphql。
请注意,其中一些参数不再适用,例如express-grapqhl 现在是用 TypeScript 编写的。因此,从自述文件中删除了此部分。
一项观察结果是 apollo-server 过于臃肿,并且慢慢地显示出缺乏维护。如果我今天要选择一个,我会选择express-graphql 。但这是个人喜好,您应该进行自己的尽职调查。
还有一个由社区维护的express-graphql Koa 端口,称为koa-graphql。使用express-graphql或koa-graphql,结合像envelop这样的东西,你可以实现一切,甚至更多,Apollo“生态系统”以更加模块化的方式提供。
与比较
express-graphqlApollo Server 和 Apollo Server 都是 Node.js 的 GraphQL 服务器,构建在 参考实现
express-graphql之上,但有一些关键区别:graphql-js
express-graphql与 Express 和 Connect 配合使用,Apollo Server 支持 Express、Connect、Hapi、Koa 和 Restify。- 与 相比
express-graphql,Apollo Server 具有更简单的接口,并且仅支持一种传递查询的方式。- Apollo Server 将服务GraphiQL(用于探索 GraphQL 的浏览器内 IDE)与响应 GraphQL 请求分开。
express-graphql包含用于解析 HTTP 请求主体的代码,Apollo Server 将其留给标准包(例如 body-parser)。- Apollo Server 包含一个
OperationStore可以轻松管理白名单的功能。- Apollo Server 是使用 TypeScript 构建的。
应用程序/graphql 请求
express-graphql支持请求的 Content-Type,这是仅将查询部分作为文本发送的请求application/graphql的替代方案。就像我们用来解析apollo-server 请求的application/json方式一样 ,我们可以使用一个额外的步骤来解析请求。这是 Express 的示例:bodyParser.jsonapplication/jsonbodyParser.textapplication/graphqlRun Code Online (Sandbox Code Playgroud)'body-parser'; import { graphqlExpress } from 'apollo-server-express'; const myGraphQLSchema = // ... define or import your schema here! const helperMiddleware = [ bodyParser.json(), bodyParser.text({ type: 'application/graphql' }), (req, res, next) => { if (req.is('application/graphql')) { req.body = { query: req.body }; } next(); } ]; express() .use('/graphql', ...helperMiddleware, graphqlExpress({ schema: myGraphQLSchema })) .listen(3000); ```
Express-GraphQL是一个中间件,可以使用 Express 或任何支持中间件的 Web 框架快速设置 GraphQL Server。
Apollo-server 是一个位于现有节点服务器上并解析 GraphQL 查询的包。(与express-graphql非常相似)你可以将它与express、Koa等一起使用。
我的建议是使用 Graphql-yoga,因为它是使用 apollo-server 和 express-graphql 构建的。它是由Prisma Team.
| 归档时间: |
|
| 查看次数: |
12083 次 |
| 最近记录: |