当前位置: 首页 > 知识库问答 >
问题:

Rest API设计PUT vs修补程序

辛盛
2023-03-14

我正在开发两个REST API,它在我的后端编辑和暂停一些东西。对于编辑,我使用的是:

PUT /video/1

什么是最好的方法开发暂停视频服务。我应该为此使用patch还是put?输入将只是ID。如果我使用put,那么如何区分编辑和暂停呢?如果我有另一个API需要开发,例如:视频重启,我如何在REST API中容纳这些动词?

共有1个答案

葛泳
2023-03-14

仅使用HTTP方法来区分状态是一个糟糕的想法。您所能做的是:

>

  • 引入状态,然后使用补丁更改状态:

    PATCH /vidoes/1
    {
       "state": "PLAYING|PAUSED|STOPPED" // what you need here
    }
    

    头脑不像白痴那样打补丁,然而像白痴那样打补丁却是常有的事。

    POST /vidoes/1/play/
    POST /vidoes/1/stop/
    POST /vidoes/1/pause/
    

    用于编辑的put当然是可以的,但是请记住put是幂等的,并且需要发送资源。

  •  类似资料:
    • 我对PersondTo有以下定义: 下面是一个示例记录: 现在,无名氏离婚了。所以我需要向这个URL发送补丁请求: 我想不出该怎么做。以下是我到目前为止所做的尝试: 以下是上面的问题: 1)由于我只设置了MaritalStatus,其他字段都将为null。因此,如果我打印出请求,它将如下所示: 请欣赏那些编写客户机应用程序的人提出的使用Spring的RESTTemplate使用Restful we

    • 我正在尝试修补(部分更新)Firebase记录(Firebase.com)。这在使用补丁的Google应用程序脚本之外非常有效。GAS不支持补丁,我尝试了X-HTTP-Method-Override,但没有成功。将GAS与X-HTTP-Method-Override一起使用会呈现与标准GET相同的结果。我的测试数据库没有安全性。不需要登录。 VAR myPayload = "{\"WSD124\"

    • 有很多类似“REST vs SMTH”的比较(例如vs Kafka,vs JSON-RPC),但我也看到了JSON-RPC和JSON补丁之间的许多相似之处--它们都指定了操作/方法、值/参数,并允许执行批处理请求。我看到的唯一区别是,JSON-RPC还用ID和错误描述响应格式,因此看起来更加成熟。但也许它们只是有不同的优点和缺点,不同的合适用例?

    • 我一直在阅读有关为将向客户公开的REST服务设计API的最佳实践。例如,我们应该使用名词来命名所有公开的URI。此外,动词应遵循HTTP命令的语义。例如,GET请求不应该修改资源,而应该在这里使用PUT请求。我在一次采访中被问到这个问题,但我不能满意地回答这个问题——我正在设计一个计算器,它提供以下功能:对两个操作数进行加法、乘法、除法和减法。如何按照REST原则向客户端公开这些方法。这些操作要使

    • 我正在设计我的开放世界RPG的架构(我创建它是为了好玩,我不想让它成为热门游戏:D),我不得不停止它,因为我撞到了一堵严重的墙。 如果a创造了一个大型的开放世界游戏,那么它的规模也会很大。 假设我的游戏有一个启动器,当发现新补丁时,它会自动更新自己。 再次下载整个游戏是不可接受的,因为如果有一个小错误修复,如果只有一个小变化,谁会再次下载整个游戏? 所以我不得不做一个可修补的架构,所以如果有更新,

    • 问题内容: 我知道,如果go代码的结构使其可以编程为接口,那么模拟起来就很简单了。但是,我正在使用无法更改的代码库(不是我的),情况并非如此。 该代码库是高度互连的,并且仅对结构进行编程,而没有对接口进行编程,因此没有依赖项注入。 这些结构本身仅包含其他结构,因此我也无法以这种方式进行模拟。我不相信我可以对方法做任何事情,并且存在的少数几个函数不是变量,所以我不知道如何将它们换出。继承在golan