gpt4 book ai didi

RESTful API 设计区分具有相同 HTTP 方法的相同 URI 上的操作

转载 作者:可可西里 更新时间:2023-11-01 17:35:31 24 4
gpt4 key购买 nike

我想设计一个 RESTful API 以便通过网络界面控制蓝牙 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

“创建”那些实体。然后,您可以返回与指定加密狗相关的 Discovery 或 Connection 实体,其中包含此类实体的相关属性(DiscoveredDevices、ConnectionID...)。

关于RESTful API 设计区分具有相同 HTTP 方法的相同 URI 上的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32412664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com