rest - 使用 http PUT 方法查询参数 - REST API
问题描述
我在我的 http PUT 方法中传递请求对象和路径变量来更新记录。与请求对象相比,是否可以将附加数据(例如时间戳)作为查询参数传递给我想要保存在具有附加字段(例如时间戳)的最终记录中?
解决方案
与请求对象相比,是否可以将附加数据(例如时间戳)作为查询参数传递给我想要保存在具有附加字段(例如时间戳)的最终记录中?
简短的回答:这可能并不意味着你认为它做了什么。
可以在 PUT 请求中使用查询参数吗?绝对地。查询参数只是资源标识符的另一部分。
/15f3221f-ee3b-4155-bc75-f80855a9187e/abc
/15f3221f-ee3b-4155-bc75-f80855a9187e?abc
这是两个不同的资源标识符,机器不会假设它们标识相同的资源,但是适用于一个的所有 http 方法也适用于另一个,并且意味着相同的事情。
当然没有什么神奇abc
的,你可以在那里使用时间戳
/15f3221f-ee3b-4155-bc75-f80855a9187e?1970-01-01
更改时间戳会更改标识符;就通用组件而言,接下来的两个示例标识了不同的资源
/15f3221f-ee3b-4155-bc75-f80855a9187e?1970-01-01
/15f3221f-ee3b-4155-bc75-f80855a9187e?1970-01-02
您可以将它们想象为桌面日历的两个不同页面。修改 1970-01-02 文档中的约会列表根本不会更改 1970-01-01 日历。
有关表示的元数据通常嵌入在表示本身(想想 HTML 文档中的 HEAD 元素)或 HTTP 标头中。据我所知,我们没有与您想要的语义相匹配的标准化标头。
综上所述:服务器在如何解释请求以更新/15f3221f-ee3b-4155-bc75-f80855a9187e?1970-01-02
. 例如,该资源的更新也可能会更新许多其他资源的表示。
(但请记住缓存 - 我们只有有限的几种方法可以告知通用客户端某些缓存表示已被请求无效。)
推荐阅读
- php - 如何从 html 表单中读取 rss 提要
- c# - .Net MVC 中使用 HttpClient 的 Json 对象序列化
- python - 使用opencv进行YUV帧平均
- apache-kafka - 我可以清空当地的卡夫卡国营商店吗
- python - 记录和 paramiko 奇怪的行为
- powershell - 使用 import-pssession 但使用 enter-pssession 时缺少对象方法
- python - 在我的不和谐机器人 python 中从维基百科获取解析器错误
- php - 创建表单时,我收到通知:未定义索引:
- sql - 未嵌套的 json 字符串数组
- android - 在 Fragment 中实现 onBackPressed()