[英]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.