REST API可能的值集:字符串还是整数?

时间:2012-06-26 16:57:31

标签: api rest

我正在设计REST API并遇到过这个问题:

如何定义一组值?

假设我有一个将在http://myserver.com/api/getPicture/1

请求的Picture对象

所以服务器响应:

{
 url : "http://myserver.com/pictures/1.jpg",
 taken_at : "1/1/2012"
}

现在,我想添加一个color_depth字段。

执行此操作的两种可能选择是:

color_depth : "BLACK_WHITE" or "COLOR" or "GRAYSCALE"
color_depth : "0" OR "1" OR "2" //would need to map these to their meaning somewhere

在这种情况下,有什么标准可以做吗?

1 个答案:

答案 0 :(得分:3)

对于JSON,没有任何事实或官方标准。 JSON-SCHEMA试图解决这个问题,但目前尚未推荐这些规范,甚至实施也不受欢迎。

使用XML,XML Schema是标准解决方案。对于RDF,还有RDFS可以解决这个问题。

对于每种格式,coice都是你的。取决于整数标识符(1,2,3)并且在没有模式的情况下翻译它们意味着您的请求远不如表示“COLOR”的字符串那样自包含。这是RESTful API设计的核心概念,请求应该是自包含的。这与Roy Fielding论文中描述的REST visibility property RESTful架构有关。

我会全力以赴。