上个周末想试用下 Typescript 和 Fastify(一个 node.js 的框架),想找个什么项目练练手,于是就动起了给 Ruby China 写 GraphQL API 的念头。
Live demo:https://ruby-china-graphql-api.vercel.app/api/graphql
项目开源在 Github:https://github.com/renyuanz/ruby-china-graphql-api
完成度大概是 30%,只接了一部分的 GET 接口:
如果你觉得这个项目对你有启发或者有帮助,欢迎给个 star~
嗯,Fastify 是框架官方对 Typescript 支持做的最好的,选用这套技术的初心就是 TS+GraphQL 配合有无与伦比的开发体验。
做中间件,感觉就像在一个黑盒子里面摸东西,是各种不确定性在给人带来恐惧。
新增了对新人友好的 GraphiQL explorer 插件,点击功能按钮中的“Explorer”,打开左侧栏的操作界面,可以通过勾选的方式来组成 query
顺便一提:Ruby 原生的 GraphQL gem 也很好使,无缝融入 Rails:https://github.com/rmosolgo/graphql-ruby
在用这项目,唯一感觉就是目录分层不好,还有对 i18n 的支持也是差强人意,写了个扩展修改了下 https://github.com/308820773/rails-api-graphql
我用了些元编程伎俩结合 GraphQL::ObjectType.define 把 GraphQL model 定义和一般 crud 的 query/mutation 自动化了一下,其实还好,没那么多要分目录的——也可能是我的 api 少,主要给前端拿 GraphiQL 当文档用了
All problems in computer science can be solved by another level of indirection —— David Wheeler
折腾了一下 serverless,把服务搭到了 vercel,demo URL:https://ruby-china-graphql-api.vercel.app/api/graphql