【问题标题】:Best practices for allowed values for a rest apirest api 允许值的最佳实践
【发布时间】:2012-10-09 10:19:52
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: api rest post


    【解决方案1】:

    您需要在您的媒体类型中定义枚举的概念。然后,您可以在超媒体控件中枚举允许的值,告诉他们在哪里发布什么。例如 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 作为有效选项。太好了!

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2013-10-23
        • 2020-05-29
        • 1970-01-01
        • 2018-04-27
        • 2018-05-25
        • 2020-04-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多