在引入GraphQL Ruby(基于类的API)时遇到的问题

首先
在过去的一两周中,我将GraphQL引入了Rails项目,希望能够与大家分享我的经验和见解。
我将就遇到的问题、解决的问题以及仍然存在的困扰进行分别的描述。
解决的事情 de
GraphQL-Ruby的文档过时,无法找到最新的写法。
浏览 graphql-ruby 的提交记录,如果发现文档和模块已经过时,请小心使用。
重要!从5月份发布的v1.8.0开始,有了重大改变,并且变成了基于类的API。
请参考这里来了解class-based API的实现。
http://graphql-ruby.org/schema/class_based_api
例如,在”Get Started”中,有以下的指示说请生成generate。但是,由于这个生成工具本身已经过时了,我们可以复制粘贴主页上的例子。
古老的发电机 de jī)
rails g graphql:object Post title:String rating:Int comments:[Comment]
最近的写作方法 de
class Types::ProfileType < Types::BaseObject
field :id, ID, null: false
field :name, String, null: false
field :avatar, Types::PhotoType, null: true
end
目前对于GraphQL的参考资料较为有限。
请一定试试这里列出的公共API参考网址:https://github.com/APIs-guru/graphql-apis。
只要有个大致的编码规范就行了
因为Kibela公开了编码规范,所以我参考了它。
https://bitjourney.kibe.la/shared/entries/1f26acbe-315f-42b8-9ecd-11bcaac5b697
Collection和Array有什么区别?
以下是非常清楚易懂的。
集合型字段基本上使用连接类型
无论什么情况下都需要获取所有元素的字段使用数组类型
引用来源:https://bitjourney.kibe.la/shared/entries/1f26acbe-315f-42b8-9ecd-11bcaac5b697#connection-vs-array
目前遇到困难的事情
应该为“在哪里应该做到什么程度”提供多少选项
在GitHub中,我们创建了一个名为search的字段,可以以通用的方式进行搜索。
尽管这种方法非常灵活,但我觉得很麻烦,因为需要在文档中写明应该放入查询(query)中的内容。
在查看Yelp时,我注意到参数被细致设置了,使用方式很容易想象到。
然而,参数过多可能导致可读性下降,这是一个问题。
Yelp的示例查询在这里。
N + 1 问题
GraphQL 批处理
以下是中文的同义句:
经过搜索,常常出现的是这个选项。
由于需要写更多的逻辑,所以担心会增加代码量。
如果上述的逻辑还无法完全解决,就会考虑引入 goldiloader。
https://github.com/Shopify/graphql-batch
采金者
我正在尝试使用这个gem,因为它可以解决许多只需加入即可完成的查询任务。
https://github.com/salsify/goldiloader
真的不需要版本管理吗?

最后
通过引入GraphQL,我感觉应用程序的前端和后端之间的通信成本可能会降低。
由于它可以以非常小的规模开始使用,所以首先尝试引入并检查是否适合似乎是个不错的选择。
我正在尝试各种实现和模式,如果有人有经验的话,能够给予评论将会很有帮助!
由于Globis正在积极招聘工程师和设计师,如果您对此感兴趣,请访问Wantedly!
一个有参考价值的链接
http://graphql-ruby.org/schema/class_based_api (基于类的 API 的 GraphQL Ruby 文档)
https://www.howtographql.com/ (如何使用 GraphQL 的教程网站)
https://qiita.com/vsanna/items/031aa5a17a2f284eb65d (关于 GraphQL 的教程文章)
https://bitjourney.kibe.la/shared/entries/1f26acbe-315f-42b8-9ecd-11bcaac5b697 (Bitjourney 公开的关于 GraphQL 的词条)
https://www.yelp.com/developers/graphql/guides/intro (Yelp 官方提供的 GraphQL 入门指南)
https://github.com/APIs-guru/graphql-apis (APIs Guru 维护的 GraphQL API 列表)