簡體   English   中英

RESTful API設計通過相同的HTTP方法區分對相同URI的操作

[英]RESTful API design differentiate operations on identical URI with same HTTP Method

我想設計一個RESTful API,以便通過Web界面控制Bluetooth Dongle。

如果我有以下沖突怎么辦

POST /IDofDongle/

假設我想讓這個特定的USB加密狗啟動發現/查詢過程(將有關周圍藍牙設備的信息添加到資源中)或連接到任何藍牙設備(通過將藍牙設備的MAC地址附加到藍牙設備來創建新的從屬資源)上面的URI)?

在我看來,使用QueryString進行區分似乎非常類似於RPC。 還是我需要定義其他資源?

您遇到了REST錯誤。 並非所有內容都是資源,因此您不應嘗試將所有內容都視為這樣。 通過POSTint到該端點,就意味着您要創建USB加密狗。 由於您不訪問3D打印機,因此無法使用。 正在構建RPC服務。

因此,請打破REST並引入自己的動詞:

POST /IDofDongle/Discover
POST /IDofDongle/Connect

當然,您可以將“發現”和“連接”視為資源:

POST /IDofDongle/Discoveries
POST /IDofDongle/Connections

“創建”那些實體。 然后,您可以返回與指定的加密狗相關的發現或連接實體,其中包含此類實體的相關屬性(DiscoveredDevices,ConnectionID等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM