当前位置:  开发笔记 > Android > 正文

REST返回一个对象图

如何解决《REST返回一个对象图》经验,为你挑选了2个好方法。

我是REST架构设计的新手,但我认为我已经涵盖了它的基础知识.

从RESTful调用返回对象时遇到问题.如果我发出请求,例如http:// localhost / {type A}/{id},我将从具有指定id的数据库返回A的实例.

我的问题是当A包含B对象的集合时会发生什么?目前,我生成的XML返回A,其中包含B对象的集合.可以想象,如果B类型具有C对象的集合,那么返回的XML将最终成为一个非常复杂的对象图.

我不能100%肯定,但这感觉违反了RESTful原则,XML for A应该返回A的字段等以及它所拥有的B集合的URI集合.

对不起,如果这有点令人困惑,我可以尝试详细说明.这似乎是一个相对基本的问题,但我无法确定哪种方法更"REST".

干杯,

Aidos



1> S.Lott..:

一个重要的RESTful原则是一切都有URI.

你有这样的URI.

/ A /和/ A/id /获取A和特定A的列表.A响应包括B的ID.

/ B /和/ B/id /获取B和特定B的列表.B响应包括C的ID.

/ C /和/ C/id /获取C和特定C的列表.

您可以通过一系列查询重建ABC结构.你得到A,然后得到相关的B. 获得B时,您将获得所引用的各种C.


编辑

没有什么能阻止你多回来.

例如,您可能具有以下类型的URI.

/flat/A/id/,/flat/B/id//flat/C/id/返回"平坦"(即无深度)结构.

/deep/A/id/,/deep/B/id//deep/C/id/返回完整深度的结构.

/deep/A/id/将是整个结构,在一个大的嵌套XML文档中.对于可以处理它的客户来说很好. /flat/A/id/将只是平面文档中的顶级.最适合无法处理深度的客户.



2> Frank Kruege..:

没有任何迹象表明您的REST界面不能是关系型的.

    / bookstore/{bookstoreID}

    / bookstore/{bookstoreID}/books

    / book/{bookID}

基本上,您与数据库架构的对应关系是1:1.

除了形成儿童名单的多对多关系.例如,/ bookstore/657/books应返回书籍ID或URL列表.然后,如果您想要特定书籍的数据,您可以调用第3个URL.

这只是我的头脑,请讨论优点.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有