开源项目 写了个 Ruby China 的 GraphQL API

renyuanz · 2020年09月01日 · 最后由 pc9527 回复于 2020年09月18日 · 2308 次阅读
本帖已被设为精华帖!

上个周末想试用下 Typescript 和 Fastify(一个 node.js 的框架),想找个什么项目练练手,于是就动起了给 Ruby China 写 GraphQL API 的念头。

Live demo:https://ruby-china-graphql-api.herokuapp.com(用的 free dyno 所有会有休眠期,慢的话稍微等等)

项目开源在 Github:https://github.com/renyuanz/ruby-china-graphql-api

完成度大概是 30%,只接了一部分的 GET 接口:

Query

  • topics: [Topic!]
  • topic(id: ID!): Topic
  • me: UserMe!
  • nodes: [Node!]
  • node(id: ID!): Node
  • users(limit: Int): [User]

有什么特别的地方:

  1. 基于 Fastify,性能快
  2. 用 Typescript 和 graphql-codegen 自动从 Schema.graphql 生成 resolvers 类型
  3. Oauth2 集成,修改配置后可以直接适用于任何基于 homeland 搭建的项目
  4. 魔改了 GraphiQL,增加了一个登录入口

如果你觉得这个项目对你有启发或者有帮助,欢迎给个 star~

很有启发,厉害厉害!

厉害👍

jasl 将本帖设为了精华贴 09月03日 06:32

@ericguo @shin 谢谢支持~

Fastify最近还上了播客。

嗯,Fastify 是框架官方对 Typescript 支持做的最好的,选用这套技术的初心就是 TS+GraphQL 配合有无与伦比的开发体验。

做中间件,感觉就像在一个黑盒子里面摸东西,是各种不确定性在给人带来恐惧。

新增了对新人友好的 GraphiQL explorer 插件,点击功能按钮中的 “Explorer”,打开左侧栏的操作界面,可以通过勾选的方式来组成 query

顺便一提:Ruby 原生的 GraphQL gem 也很好使,无缝融入 Rails:https://github.com/rmosolgo/graphql-ruby

pc9527 回复

在用这项目, 唯一感觉就是目录分层不好, 还有对 i18n 的支持也是差强人意, 写了个扩展修改了下 https://github.com/308820773/rails-api-graphql

308820773 回复

我用了些元编程伎俩结合 GraphQL::ObjectType.define 把 GraphQL model 定义和一般 crud 的 query/mutation 自动化了一下,其实还好,没那么多要分目录的——也可能是我的 api 少,主要给前端拿 GraphiQL 当文档用了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册