我正在實施REST API,其中添加資源時,某些POST字段只能具有特定值。例如,我有一個具有usertype字段的用戶資源:此usertype字段只能有2個值,即管理員和用戶。允許值爲休息api的最佳做法
您如何讓開發人員以RESTful方式發現這些允許的值?
謝謝!
我正在實施REST API,其中添加資源時,某些POST字段只能具有特定值。例如,我有一個具有usertype字段的用戶資源:此usertype字段只能有2個值,即管理員和用戶。允許值爲休息api的最佳做法
您如何讓開發人員以RESTful方式發現這些允許的值?
謝謝!
您將需要在媒體類型中定義枚舉的概念。然後,您可以枚舉超媒體控件中的允許值,告訴它們在哪裏發佈內容。例如入門/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
元素是一個窗體域,administrator
和user
是枚舉有效值。基於此示例,您的媒體類型將需要集合,表單,表單字段和枚舉的結構。
這實際上是我喜歡REST的東西。因爲這些信息是在帶內傳遞的,所以您可以輕鬆更改它,而不會破壞(寫得很好)的客戶端。例如,只要說你想添加editor
到枚舉中,你可以添加它。老客戶可以忽略它,新客戶可以利用它。更好的是,您可以根據請求者授權更改有效值。例如如果請求者是管理員,則他們都被賦予administrator
和user
作爲有效值。如果請求者是user
,那麼他們僅被作爲有效選項給予user
。在降噪!
一個簡單的解決方案可能是一個只讀的資源/ usertypes返回允許的值。
很好的答案!謝謝! –