超级简单的设置:
--api
创建了一个新的rails应用,并添加了生成器/框架name
属性与has_many
关系到其他Artefacts(名为.artefacts
)node1.artefacts = node2
)现在,当浏览到/artefacts
时,返回的JSON只是2个节点。
并继续前进; Rails如何返回自定义JSON布局,例如:
[{"artefact":{"name":"Node1","id":"e6571172-889c-4dd9-abca-a522f28c970d", artefacts: ["0643d8c5-fc67-431c-b015-7c5894439058", "5e7ceb40-18da-474e-8fe0-22d3887943b4"]}}]
答案 0 :(得分:1)
这一切都取决于你如何序列化。默认情况下,Rails将序列化节点对象。您应该可以使用此处为include
:
ActiveRecord
选项
Include associated model when rendering JSON in Rails
我个人也喜欢序列化对象的json:api标准。其中一个重要优点是,您可以包含关联对象,并且对象可以有效地进行侧载,这样您就不会在响应中包含重复项。我喜欢它的另一件事是它是标准,而当我过去在应用程序中呈现JSON时,它通常只是开发人员所做的事情。那张卡片以为最好。
jsonapi-resources
宝石很受欢迎:
https://github.com/cerebris/jsonapi-resources
gem会照顾很多Rails集成并为您创建控制器和路由,但与ActiveNode
的集成存在一些问题。我已成功使用jsonapi-serializers
宝石,但它需要您为自己做更多的事情:
https://github.com/fotinakis/jsonapi-serializers
你可能会看看它的Rails示例:
https://github.com/fotinakis/jsonapi-serializers#rails-example