rest api允许值的最佳实践

时间:2012-10-09 10:19:52

标签: api rest post

我正在实现一个REST API,在添加资源时,某些POST字段只能有特定的值。例如,我有一个带有usertype字段的用户资源:这个usertype字段只能有2个值,即管理员和用户。

如何让开发人员以RESTful方式发现这些允许的值?

谢谢!

2 个答案:

答案 0 :(得分:1)

您需要在media-type中定义枚举的概念。然后,您可以枚举超媒体控件中的允许值,以告知它们要发布的内容。例如,GETting /users可能会返回以下内容:

<users href="/users">
    ... collection information and other controls you want to include ...
    <create href="/users" method="post">
        ... fields ...
        <usertype type="enum" cardinality="required">
            <administrator/>
            <user/>
        </usertype>
    </create>
</users>

create元素是表单,usertype元素是表单字段,administratoruser是枚举的有效值。基于此示例,您的媒体类型中将需要集合,表单,表单字段和枚举的结构。

这实际上是我喜欢REST的东西。因为这些信息是带内通信的,所以您可以轻松地更改它,而不会破坏(写得很好)客户端。例如,只是说你想在枚举中添加editor,你可以添加它。旧客户可以忽略它,新客户可以利用它。更好的是,您可以根据请求者授权更改有效值。例如如果请求者是管理员,则他们将administratoruser作为有效值。如果请求者是user,那么他们只会被user作为有效选项。在降噪!

答案 1 :(得分:0)

一个简单的解决方案可能是只读资源/ usertypes,它返回允许的值。