从 koa-graphql 迁移到 graphql-http

从 koa-graphql 迁移到 graphql-http

💡 原文约800字/词,阅读约需3分钟。
📝

内容提要

在开发Woovi挑战时,我遇到了一些关于Koa.js和GraphQL的问题,特别是在迁移到graphql-http时。由于koa-graphql几乎被弃用,我选择了graphql-http。虽然它简单,但缺乏自定义错误处理和graphiql支持。通过创建处理程序和适配上下文类型,我解决了这些问题并简化了错误处理,最终成功更新了库并优化了项目。

🎯

关键要点

  • 在开发Woovi挑战时,选择使用graphql-http替代koa-graphql,因为后者几乎被弃用。
  • graphql-http功能简单,但缺乏自定义错误处理和graphiql支持。
  • 通过创建处理程序和适配上下文类型,解决了graphql-http的功能缺失问题。
  • 在迁移过程中,首先需要完全移除koa-graphql并安装graphql-http。
  • 创建处理程序时,需要导入createHandler并传入schema和context。
  • 适配context类型时,需注意headers的获取方式发生变化。
  • 创建了一个函数来正确验证和获取GraphQL HTTP头信息。
  • 错误处理变得更简单,只需添加一个中间件来处理GraphQL错误。
  • graphiql的访问方式进行了调整,使用ruru在开发环境中访问playground。
  • 最终成功更新库,优化项目并节省了一些KB的体积。

延伸问答

为什么选择从koa-graphql迁移到graphql-http?

因为koa-graphql几乎被弃用,graphql-http是一个更简单的替代方案。

graphql-http有哪些功能缺失?

graphql-http缺乏自定义错误处理和graphiql支持。

迁移到graphql-http的第一步是什么?

第一步是完全移除koa-graphql并安装graphql-http。

如何创建graphql-http的处理程序?

通过导入createHandler并传入schema和context来创建处理程序。

如何处理graphql-http中的错误?

只需添加一个中间件来处理GraphQL错误,简化了错误处理。

如何在开发环境中访问graphiql?

使用ruru工具在开发环境中访问playground。

➡️

继续阅读