复杂数据结构的REST解决方案

时间:2010-10-04 17:33:47

标签: api rest

我目前正在构建一个API,我们倾向于使用一个解决方案来使用REST。一个关键问题是传递的参数是复杂的数据类型,包括嵌套哈希,哈希数组的哈希等。原则是用户应该能够用最少的API调用完成他们的任务。

我见过的一个常见解决方案是发布序列化数据,但这需要客户端管理序列化他们自己的数据。我们当前的API使用XMLRPC,客户端只需使用兼容的客户端,而不用担心序列化。

我的问题是社区,对于那些必须提出解决方案来解决这个问题的人,你做了什么?成本/权衡是什么?你会以不同的方式做什么?

谢谢:)

2 个答案:

答案 0 :(得分:1)

JSON和XML完全匹配您的问题 - 我使用JSON,它也可以在浏览器的上下文中轻松解析(XML处理效率较低)。当你获取,发布等等它将在请求/响应体中传播的复杂数据时,这很好。保留您的网址参数以便检索&发布属性。

答案 1 :(得分:0)

REST就是通过网络传输资源状态的表示。所以不要考虑参数,考虑你的资源是什么,以及这些资源的最佳表现形式。

请记住,表示传输有两种方式 - 客户端可以发送所需资源状态的表示,以便创建或更新资源。这就是POST和PUT的用途。

此外,不要忽视资源提供/支持多种表示格式(内容类型)的价值。我已经构建了许多API,其中资源可以为浏览器提供HTML表示,或者为程序化使用提供JSON或XML表示。

更具体一点,对于您描述的数据结构类型,我建议使用JSON。它简单,清晰,易于在任何平台上使用,并且简洁直接地支持这些结构。