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

renyuanz · 2020年09月01日 · 最后由 Zhong 回复于 2020年12月31日 · 4922 次阅读
本帖已被管理员设置为精华贴

上个周末想试用下 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 接口:

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

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 当文档用了

ericguo 回复

启发??

"The middleware concept is wrong"

zzz6519003 回复

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

Fastify 有点火

renyuanz 回复

没看见呢

renyuanz 回复

没瞅见功能按钮中的“Explorer”

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