ODATA 将 etag 从响应传递到请求

ODATA pass etag from response to request

提问人:Jijo Joseph 提问时间:3/24/2023 最后编辑:SuncatcherJijo Joseph 更新时间:8/22/2023 访问量:288

问:

我正在研究SAP集成,其中一个事务需要多个GET,PATCH和POST。此外,还需要在调用之间传递 etag。我正在尝试$batch但不知道如何在调用之间传递 etag,因为对实体的一次修改会更改 etag。这就是我尝试过的。

Content-Type: multipart/mixed;boundary=changeset_01

GET A_OutbDeliveryHeader(DeliveryDocument='0000000001') HTTP/1.1
sap-context-accept: header
Content-Type: application/json
Accept: application/json
Content-ID: C1

--changeset_01
Content-Type: application/http
Content-Transfer-Encoding: binary

PATCH A_OutbDeliveryItem(DeliveryDocument='0000000001',DeliveryDocumentItem='10') HTTP/1.1
sap-context-accept: header
Content-Type: application/json
Accept: application/json
Content-ID: C2
If-Match: xxxxx

{
  "ActualDeliveryQuantity": "2.000"
}


--changeset_01
Content-Type: application/http
Content-Transfer-Encoding: binary

PATCH A_OutbDeliveryHeader(DeliveryDocument='0000000001') HTTP/1.1
sap-context-accept: header
Content-Type: application/json
Accept: application/json
Content-ID: C3
If-Match: xxxxx

{
  "ActualGoodsMovementDate": "2023-03-14T13:33:10",
  "ActualGoodsMovementTime": "PT13H33M10S"
}


GET A_OutbDeliveryHeader(DeliveryDocument='0000000001') HTTP/1.1
sap-context-accept: header
Content-Type: application/json
Accept: application/json
Content-ID: C4


--changeset_01
Content-Type: application/http
Content-Transfer-Encoding: binary

POST PostGoodsIssue?DeliveryDocument='0000000001' HTTP/1.1
sap-context-accept: header
Content-Type: application/json
Accept: application/json
Content-ID: C5
If-Match: xxxxx


--changeset_01--


--batch_01--
azure-web-app-service odata sap-gateway s4hana

评论

0赞 Sandra Rossi 3/24/2023
您的标签无效。SAP是一家公司,HANA是数据库软件。您使用哪个框架来生成 etag?
0赞 Jijo Joseph 3/24/2023
此 API 调用从 Azure 进行。我们将调用 SAP 共享给我们的 API 端点。我不确定内部的实现情况。我们只应该调用 ODATA API。当对同一对象进行多次修改时,etag 会发生变化。因此,后续调用应传递更新的 etag,否则将抛出前提条件失败。
1赞 Sandra Rossi 3/25/2023
更改为标记 S/4HANA,这是基于 HANA 数据库的最常用的 SAP 软件,并标记 SAP Gateway,这是 OData 的技术砖块。

答: 暂无答案