【问题标题】:PUT without data, is it RESTful?PUT 没有数据,它是 RESTful 的吗?
【发布时间】:2012-10-08 06:06:56
【问题描述】:

简单的问题:如果我不通过 HTTP POST/PUT 方法在我的资源上发送数据(内容)怎么办?它仍然是 RESTful 吗?

很明显,问题是在哪种情况下我想使用没有数据的 PUT。想象一个用户想要重置他/她的密码(比如this older topic)。

你怎么看?可以不使用 POST/PUT 方法发送内容吗?我个人对此没有任何问题,但我只是好奇其他人会怎么说。

【问题讨论】:

    标签: http rest


    【解决方案1】:

    是的,这是完全可以接受的。在没有数据的情况下执行每个操作(POST 到集合,PUT 到资源)都应该创建一个新的“空”资源。此处“空”的定义取决于所代表的内容。

    但是,在重置用户密码的特定情况下,我不会说上述模型适用。如果确实存在密码资源,则没有数据的 PUT 似乎建议将密码设置为空,而不是重置它。对于这种情况,我会选择该问题的公认答案。

    【讨论】:

      【解决方案2】:

      您不需要 POST 或 PUT 中的数据使其成为 Restful。如果您正在做的事情是非幂等的(意味着请求将修改或创建资源),您不想使用 GET(无论是否有任何数据要传递)。例如,您可能有一个 RESTful Web 服务,它将请求的时间和资源 url 命中视为创建或修改某些资源所需的一切——不需要请求数据!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-19
        • 1970-01-01
        • 1970-01-01
        • 2016-12-05
        • 1970-01-01
        • 2020-10-20
        • 1970-01-01
        相关资源
        最近更新 更多