- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个 Rails 5 应用程序,我在其中使用了 gem active_model_serializers
( https://github.com/rails-api/active_model_serializers )。在我的应用程序中,我有一个简化的数据模型,看起来像这样:
# LocalizedString.rb
has_many :translations
# Translation.rb
belongs_to :localized_string
我正在尝试遵循 JSON API 中的最佳实践,我已经像这样配置了 active_model_serializers
:
ActiveModelSerializers.config.adapter = :json_api
当 API 的用户请求翻译 (http://[root]/api/apps/117/translations
) 时,我目前得到以下结果:
{
"data": [
{
"id": "152",
"type": "translations",
"attributes": {
"value": "Test",
},
"relationships": {
"language": {
"data": {
"id": "1",
"type": "languages"
}
},
"localized-string": {
"data": {
"id": "162",
"type": "localized-strings"
}
}
}
},
[...]
在我的 localised-string
中,我还想包含另一个对 API 使用者至关重要的属性,我不想再调用一次 API 来获取值属性。我想知道最好/推荐的方法是什么,如果可能的话也遵循 json_api
。
像这样的东西可以工作:
"localized-string": {
"data": {
"id": "162",
"key": "my key value", # the attribute I need.
"type": "localized-strings"
}
}
但我不确定如何使用 active_model_serializers
来实现这一目标,或者这是否是另一种推荐的方式来实现我想要的 [json_api][1]
。
为了完成,我的相关序列化程序文件看起来像这样:
class TranslationSerializer < ActiveModel::Serializer
attributes :id, :value, :created_at, :updated_at
has_one :language
has_one :localized_string, serializer: LocalizedStringParentSerializer
end
class LocalizedStringParentSerializer < ActiveModel::Serializer
# I want to include the key attribute in my relationship object, but this doesn't work.
attributes :id, :key
end
那么,关于我需要做什么来实现我想要的,有什么想法吗?
最佳答案
根据规范,关系由资源对象标识符表示。要包含的不仅仅是 id 和类型,您需要使用 include 参数。在 AMS 中,我认为这将是 'include: [:localizations], fields: { localizations: [:key]}'(现在不在计算机上,但大致正确)
关于ruby-on-rails - Rails API 设计 : best way to include other attributes with json_api relationships,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38162116/
我正在尝试为序列化程序中的关系使用自定义序列化程序并启用 json_api 适配器。然而,这些关系没有正确序列化(或者,更好的是,根本没有显示/序列化)。 PostController.rb def
我有一个也有 API 的 Rails 应用程序。我一直在努力关注 http://jsonapi.org对于整体结构,但在没有任何数据的情况下,我找不到任何关于结果的指导方针。例如,我有一个如下所示的端
我有一个 Rails 5 应用程序,我在其中使用了 gem active_model_serializers( https://github.com/rails-api/active_model_se
我是一名优秀的程序员,十分优秀!