mon*_*nie 4 ruby-on-rails ruby-grape active-model-serializers grape-api
有人可以解释之间的差异ActiveModel::Serializers和Grape.我应该使用其中一种还是可以/应该一起使用它们.有人还可以解释使用上述一个(或两个)与仅仅使用rails它自己构建一个的好处restful JSON API吗?
先感谢您
小智 12
Grape和ActiveModel序列化程序用于不同的目的.Grape既充当控制器又充当路由器,允许您为应用程序定义API.在Rails routes.rb文件中,您包含一个类似于此的语句,以便将路由切换到Grape:
mount API::Base, at: '/'
Run Code Online (Sandbox Code Playgroud)
然后,您创建从Grape继承的类,以定义您的API接口:
module API
module V1
class Companies < Grape::API
Run Code Online (Sandbox Code Playgroud)
实际上有一个宝石可以让Grape利用ActiveModel Serializers:http: //github.com/jrhe/grape-active_model_serializers
在Grape中你无法做任何事情,你无法在Rails中做到.Grape受欢迎的原因是因为它针对编写API进行了优化.例如,在Grape中,您可以声明执行帖子所需的必要参数,并将它们与可选参数区分开来.显然,:id不会用于创建项目,但它应该是更新项目的必需项.这只是一个例子.文档将更好地解释这一点.
ActiveModel序列化程序定义对象在请求时的呈现方式.它有点像对象的视图层.例如,如果您正在显示联系人,则可能希望将联系人的公司和电话号码(单独但相关的对象)嵌入到返回的联系人对象中.在某些情况下,您可能不希望某些属性包含在您的json中.序列化器可以包括相应地保护这些属性的逻辑.ActiveModel Serializers的一个有用功能是能够嵌入相关模型的ID.
| 归档时间: |
|
| 查看次数: |
1213 次 |
| 最近记录: |