2012-10-09 36 views
2

我正在實施REST API,其中添加資源時,某些POST字段只能具有特定值。例如,我有一個具有usertype字段的用戶資源:此usertype字段只能有2個值,即管理員和用戶。允許值爲休息api的最佳做法

您如何讓開發人員以RESTful方式發現這些允許的值?

謝謝!

回答

1

您將需要在媒體類型中定義枚舉的概念。然後,您可以枚舉超媒體控件中的允許值,告訴它們在哪裏發佈內容。例如入門/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。在降噪!

+0

很好的答案!謝謝! –

0

一個簡單的解決方案可能是一個只讀的資源/ usertypes返回允許的值。