如何解决REST API和POST请求:URL中包含什么数据,POST请求中包含什么数据?
我正在开发时间表Webapp。我的问题是后端服务器的URL外观如何。我已经看到了下面提供的现有API中使用的示例。我对公约非常好奇。
致以最诚挚的谢意!
示例:
REST API端点:mycoolwebapp.com/api/timesheet/{user_id}/{date}
带有POST负载:
{'hours' : 8,'operation': 'documentation'}
或者:
REST API端点:mycoolwebapp.com/api/timesheet/
带有POST负载:
{'user_id': 10,'date': '2020-08-18','hours' : 8,'operation': 'documentation'}
解决方法
首选以下一项,因为浏览器中公开的数据量较少。
REST API端点: mycoolwebapp.com/api/timesheet
POST有效负载: {'user_id':10,'date':'2020-08-18','hours':8,'operation':'documentation'}
,URL中包含哪些数据,发布请求中包含哪些数据?
REST API是一种外观。当我们创建REST API时,我们真正要做的是提供一个界面,该界面的行为类似于HTTP兼容的文档存储(也称为“网站”)。
URI是用于从商店中检索正确文档的密钥。这里要考虑的python类似物是dictionary。
在简单的情况下,我们考虑两个 字典;第一个是在原始服务器上使用的,用于跟踪每个资源的权威副本。
第二个字典是客户端使用的cache。资源的表示形式是使用标识符作为键来存储的。
HTTP提供了有关缓存条目如何invalidated的显式语义;成功的“不安全”请求导致无效。
换句话说,当我们决定在哪里发布消息时,我们选择的事情之一就是应该使哪个先前缓存的资源无效。成功处理邮件后,缓存中的哪个主要文档会发生变化?
这告诉我们,我们对POST请求进行URI编码的信息应该与对同一文档进行GET请求时对URI编码的信息相同。
相反:请求主体不会以任何方式影响缓存-REST的部分意义在于,通用组件所需的所有信息都包含在标准化元数据中。无需通用组件就可以解析消息正文以了解transport documents over a network域中正在发生的事情。
因此,您几乎可以对邮件正文进行任何操作。
例如,将您需要的所有信息放入消息正文中,并且其中某些信息也在URI中重复是完全合理的。
对于您特定的时间表示例,我感兴趣的问题是您使用哪个URI 读取时间表?如果我们使用类似
的方法来检索文档GET /mycoolwebapp.com/api/timesheet/10/2020-08-18 HTTP/1.1
那么这将是更新服务器的该文档副本的完美合理方式
POST /mycoolwebapp.com/api/timesheet/10/2020-08-18 HTTP/1.1
Content-Type: application/json
{'user_id': 10,'date': '2020-08-18','hours' : 8,'operation': 'documentation'}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。