关于 SAP Gateway 响应头部 Last Modified 字段的赋值逻辑
本教程迄今为止,讨论的绝大多数都是 OData 服务数据实现类(Data Provider Class) 的实现。而要讨论 OData 服务的元数据话题,就得去 MPC 类研究。
MPC 类的 define 方法,负责生成 OData metadata 元数据:
Postman 里请求元数据:
/iwcor/cl_ds_svc_proc 的 get_supported_formats, 对于不同类型的请求,返回不同的支持的格式列表.
对于 metadata 元数据请求,只支持 xml 格式:
从配置表里读取缓存是否激活:
-
代表 abap_false
要读取 HTTP 请求标头 if-modified-since,应用程序开发人员可以使用方法 /IWBEP/CL_MGW_REQUEST=>GET_IF_MODIFIED_SINCE()。
例子代码:
DATA lv_if_modified_since TYPE tzntstmps.
lv_if_modified_since = io_tech_request_context->get_if_modified_since( ).
如果导出参数 ES_RESPONSE_CONTEXT-MAX_AGE 设置为一个值,则 SAP Gateway 将生成带有 max-age 指令的 HTTP 响应标头缓存控制。
请注意,如果导出参数 ES_RESPONSE_CONTEXT-MAX_AGE 设置为一个值,则还必须将导出参数 ES_RESPONSE_CONTEXT-DO_NOT_CACHE_ON_CLIENT 设置为 -
(意思是 可以缓存
)。
默认行为:如果导出参数 ES_RESPONSE_CONTEXT-DO_NOT_CACHE_ON_CLIENT 未定义(即设置为 ``),则系统会自动将 ES_RESPONSE_CONTEXT-DO_NOT_CACHE_ON_CLIENT 的默认值设置为值“X”,SAP Gateway 将生成以下 HTTP 响应标头:
cache-control: no-store, no-cache
导出参数 ES_RESPONSE_CONTEXT-LAST_MODIFIED 应填充时间戳,指示相关业务数据的最后一次更改发生的时间。 如果 ES_RESPONSE_CONTEXT-LAST_MODIFIED 填充了时间戳,则 SAP Gateway 将生成具有相关日期的最后修改的 HTTP 响应标头:
last-modified: Tue, 27 Nov 2012 09:41:40 GMT
此外,如果导出参数 ES_RESPONSE_CONTEXT-LAST_MODIFIED 包含的时间戳早于 HTTP 请求标头 if-modified-since,则 SAP Gateway 将发送 HTTP 304 响应(“未修改”)。在这种情况下,将不会发送最后修改的 HTTP 响应标头。
导出参数 ES_RESPONSE_CONTEXT-IS_NOT_MODIFIED 仅在应用程序数据的 LAST_MODIFIED 早于 HTTP 请求标头 if-modified-since 中的时间戳的情况下才可以设置为 ABAP_TRUE。 在这种情况下,相关的申请数据是最新的,根本不需要发送。 然后 SAP Gateway 将生成 HTTP 304 响应(“未修改”)。
相关文章
- SAP UI5 sap.ui.base.ManagedObject 的构造函数参数讲解
- SAP UI5 sap.ui.export.Spreadsheet API 介绍
- SAP UI5 sap.ui.Device.media.RANGESETS.SAP_STANDARD_EXTENDED 介绍
- SAP UI5 sap.ui.Device.media.initRangeSet 方法的单步调试
- 通过一个具体的例子,深入了解 SAP UI5 控件数据双向绑定的工作原理和问题排查方法试读版
- SAP UI5 sap.m.Table 实现响应式布局的两种配置模式
- 关于 SAP UI5 接口 sap.ui.core.IAsyncContentCreation 的问题讨论
- SAP UI5 响应式表格 sap.m.Table 根据不同宽度的屏幕动态决定显示或隐藏 Column 的实现源代码讲解试读版
- SAP UI5 XML 视图中数据绑定路径语法的难点和易混淆点的专题讲解
- SAP ABAP 中,if_http_extension 接口的flow_rc 字段含义
- 关于 SAP ABAP OData 服务响应里的 d,results 和 __metadata 这几个字段的作用
- SAP中类型(Type)和类别(Category)详解及其区别编程语言
- SAP SPAD创建纸张详解编程语言
- SAP GUI的配置文件详解编程语言
- 如何将SAP Script转换成PDF并上传到SAP服务器[CONVERT_OTFSPOOLJOB_2_PDF]详解编程语言
- SAP内表类型及其数据读取效率评估详解编程语言
- SAP MM 采购订单含税价实现方式详解编程语言
- sap的日期,时间详解编程语言
- Calling browser from SAP ABAP详解编程语言
- SAP在Linux上安装(sap安装linux)
- 比较:Oracle与SAP的对比(oracle和sap)
- 对比SAP VS Oracle: 哪个更适合你?(sap与oracle)
- 缓存使用SAP创建Redis缓存,实现高效稳定加速(sap如何创建redis)