REST最佳实践:您应该在POST和PUT调用时返回实体吗?

 Matherslll_493 发布于 2023-02-12 19:33

为了尊重REST原则的最佳实践,最好是在POST/PUT上返回创建/更新的实体吗?或者使用Location标头返回一个空的HTTP主体?

更确切地说,当POST创建资源时,我们应该返回:

    状态201 +位置标题+(HTTP正文中创建的实体)?

    或状态201 +位置标题+(空体)?

当资源由PUT更新时,我们应该返回:

    状态200 +(HTTP正文中更新的实体)?

    或状态204(空体)?

Robert Harve.. 10

研究其他人的API以了解他们是如何做到这一点可能是有益的.大多数有用的公共API都在Web上的某个地方发布.

例如,Overmind项目在此发布其REST API .通常,他们的方法是返回包含新的或修改的实体ID及其所有属性的JSON字典:

Operation                     HTTP Method   URL           Query string
--------------------------    -----------   ---           ------------
Create node for a specific 
provider                      POST          /api/nodes/   provider_id=PROVIDER_ID

HTTP Payload returned
---------------------
JSON dict with id of node created (generated on the server side) and all other 
attributes of the node

Twilio的API能够返回XML或JSON.当出现问题时,Twilio会在HTTP响应正文中返回异常.在XML中,它们作为元素出现在

通常,我可以看到在PUT或POST上返回对象是有用的,因为它将包含对对象属性的任何修改(例如默认值).

1 个回答
  • 研究其他人的API以了解他们是如何做到这一点可能是有益的.大多数有用的公共API都在Web上的某个地方发布.

    例如,Overmind项目在此发布其REST API .通常,他们的方法是返回包含新的或修改的实体ID及其所有属性的JSON字典:

    Operation                     HTTP Method   URL           Query string
    --------------------------    -----------   ---           ------------
    Create node for a specific 
    provider                      POST          /api/nodes/   provider_id=PROVIDER_ID
    
    HTTP Payload returned
    ---------------------
    JSON dict with id of node created (generated on the server side) and all other 
    attributes of the node
    

    Twilio的API能够返回XML或JSON.当出现问题时,Twilio会在HTTP响应正文中返回异常.在XML中,它们作为<RestException>元素出现在<TwilioResponse>

    通常,我可以看到在PUT或POST上返回对象是有用的,因为它将包含对对象属性的任何修改(例如默认值).

    2023-02-12 19:35 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有