我是REST API的新手,現在正在爲我的項目創建端點。我的問題是?如何使用多個ID選擇創建REST API端點
創建多記錄端點的正確方法是什麼?而不是做這個
/users/:id
我要選擇多個用戶像在SQL
"where users.id in [ ]"
是不是正確的方法創建一個端點:
/users?user_id=1,2,3
,用戶選擇ID爲1 ,2和3?
我是REST API的新手,現在正在爲我的項目創建端點。我的問題是?如何使用多個ID選擇創建REST API端點
創建多記錄端點的正確方法是什麼?而不是做這個
/users/:id
我要選擇多個用戶像在SQL
"where users.id in [ ]"
是不是正確的方法創建一個端點:
/users?user_id=1,2,3
,用戶選擇ID爲1 ,2和3?
您可以在您的代碼中有一個列表,以從查詢帕爾馬中獲取用戶標識列表。
端點看起來像 /用戶?ID = 1個& ID = 2 ...
在Java中,你可以趕上查詢參數如下。
@QueryParam( 「ID」)列出<整數> IDS
如果有一個HTML形式,它允許多個選擇,如下面的例子中,瀏覽器作爲Rolson Quadra時提到的(/search?q=volvo&q=opel
)執行GET
請求。
<form action="/search" method="GET">
<select multiple name="q">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
<button type="submit">Search</button>
</form>
現在,服務器實現需要了解發送的內容。 Rails,例如也理解/search?q[]=volvo&q[]=opel
(注意用於表示數組的方括號)。
除了查詢參數,您還可以使用matrix parameters。矩陣參數具有明顯屬於URL特定部分的優點。考慮以下幾點:
/users;id=1,2,3/messages
這將返回屬於用戶1,2和3
與查詢參數就應該是這樣的郵件列表:
/users/messages?users=1,2,3
這工程,但它很奇怪。查詢參數不會傳達它們所屬URL的哪一部分。
缺點是對矩陣參數的框架支持是變化的。有些支持他們,有些則不支持。
我最喜歡矩陣參數在這裏,但查詢參數也OK。
對於類似列表的參數,有兩種指定方式:您可以重複參數名稱或用逗號分隔不同的值。兩者都是可能的,一些框架更喜歡那個框架,一些框架更喜歡另一個框架。矩陣和查詢參數都是如此。
後續問題:將此URL作爲端點是否有誤?/users?user_id = 1,2,3 –
定義終點沒有正確或錯誤。但我看到的是,您需要驗證用戶標識列表。根據您的要求,您可以直接將查詢參數中的值傳遞給sql where子句。但是,如果您對輸入做了其他處理,理想情況下您希望在List數據結構中具有輸入。如果你有你提到的端點,那麼你必須提取字符串,然後創建列表。取而代之,您可以直接在列表中使用明確定義的API。 –