SAP ABAP Gateway Client 里 OData 测试的 PUT, PATCH, MERGE 请求有什么区别

简介: SAP ABAP Gateway Client 里 OData 测试的 PUT, PATCH, MERGE 请求有什么区别

相信不少朋友在使用 SAP ABAP Gateway Client 测试 OData 服务时,都看到过这三个相似的 HTTP 请求类型:PUT, MERGE 和 PATCH.



这三种类型有什么区别呢?


  • PUT:将 HTTP 请求(payload)作为输入,这个输入将被传入 OData 模型的 DPC Class 的 UPDATE_ENTITY 方法中。

例如我们通过 PUT 传入如下的数据:


{ “Vbkur” : “170” }


则只有 Vbkur 在 update_entity 方法中可见。 总之,如果将 OData 模型的 属性子集(attribute subset)作为 PUT 方法的输入,则相同的属性子集将会被传入 UPDATE_ENTITY 方法进行处理。


  • PATCH & MERGE: 如果在有效负载(HTTP 请求)中传递属性的子集,这两个方法会自动获取其他属性。 Patch 和 Merge 的行为方式相同,但基本区别在于 PATCH 支持 OData 3.0 协议,而 MERGE 支持 OData 1.0 和 2.0 协议。 因此我们应该优先使用 PATCH,而不是 MERGE.


举个例子,下列是订单的抬头属性字段集合:


{
    "Vbeln" : "32346",
    "Erdat" : "\/Date(1627171200000)\/",
    "Erzet" : "PT19H29M37S",
    "Ernam" : "FIORIUSER",
    "Audat" : "\/Date(1627171200000)\/",
    "Netwr" : "193.050",
    "Waerk" : "USD",
    "Vkorg" : "1710",
    "Vtweg" : "10",
    "Vkbur" : "180"
}


当我们使用 PATCH 操作时,仅仅传递一个待修改属性:




但是在 DPC 的 UPDATE_ENTITY 方法内,订单抬头的所有字段都可以访问:



SAP ABAP OData 框架每当触发 PATCH 或 MERGE 调用时,它将首先触发相应的 GET_ENTITY(collect all properties) 方法,然后才执行 UPDATE_ENTITY 方法。


注意:由于 MERGE 不是 HTTP 规范 [RFC2616] 中定义的动词之一,因此使用 MERGE 动词可能不会像 HTTP 规范中定义的方法那样无缝地通过网络中介。 在处理支持 OData 3.0 协议的数据服务时,HTTP PATCH 动词优先于 HTTP MERGE。 支持 OData 2.0 和 OData 3.0 协议的数据服务可以支持动词隧道以减轻此限制。




相关文章
|
1月前
|
JSON 数据格式
第三方系统或者工具通过 HTTP 请求发送给 ABAP 系统的数据,应该如何解析试读版
第三方系统或者工具通过 HTTP 请求发送给 ABAP 系统的数据,应该如何解析试读版
27 0
|
3月前
|
JSON 数据格式 开发者
Postman模仿GET/POST请求进行接口的本地测试
接口是软件开发中常用的概念,是软件生产过程中比较核心的任务。对于接口开发者,调试接口是一件较为繁琐的事情,很多时候需要线上线下来回切换。在这里,我就跟大家介绍一个只需要在本地就可以调试接口的方法。
61 0
|
4天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
9 3
|
1月前
|
数据库 开发者 容器
SAP OData metadata.xml 里 EntityType,EntitySet 和 EntityContainer 三个概念之间的区别和联系
SAP OData metadata.xml 里 EntityType,EntitySet 和 EntityContainer 三个概念之间的区别和联系
26 0
|
2月前
|
安全 数据安全/隐私保护
SAP ABAP Gateway 系统接口 /IWBEP/IF_MGW_APPL_SRV_RUNTIME 的作用介绍
SAP ABAP Gateway 系统接口 /IWBEP/IF_MGW_APPL_SRV_RUNTIME 的作用介绍
28 0
|
3月前
阿萨聊测试:如何用Postman 发送请求?
阿萨聊测试:如何用Postman 发送请求?
|
4月前
|
Web App开发 测试技术 API
Postman软件基本用法:浏览器复制请求信息并导入到软件从而测试、发送请求
Postman软件基本用法:浏览器复制请求信息并导入到软件从而测试、发送请求
|
4月前
|
Java 测试技术 持续交付
百度搜索:蓝易云【NetMock简介:简化 Java,Android和Kotlin多平台中的HTTP请求测试?】
使用NetMock,您可以在单元测试、集成测试和端到端测试中轻松地模拟和验证HTTP请求和响应,而无需实际发送请求到外部服务。这样可以提高测试的可靠性和可控性,并加快测试执行的速度。无论是在开发过程中还是在持续集成环境中,NetMock都可以帮助您更轻松地进行HTTP请求测试,提高代码质量和稳定性。
41 1
|
4月前
|
测试技术 Go
【测试平台系列】第一章 手撸压力机(五)- 结构化http请求配置
我们现在将上一级称之为TestObject(测试对象),现在我们梳理一下TO(测试对象简称,以后的文章中TO都代表测试对象)都需要哪些字段。
|
5月前
|
测试技术
什么是 SAP ABAP Cross Customizing Client
什么是 SAP ABAP Cross Customizing Client
38 0

热门文章

最新文章