关于 SAP Gateway 响应头部 Last Modified 字段的赋值逻辑

news2024/9/24 4:18:17

本教程迄今为止,讨论的绝大多数都是 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 响应(“未修改”)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/98312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

​6. 独享锁 VS 共享锁

独享锁和共享锁同样是一种概念。我们先介绍一下具体的概念,然后通过ReentrantLock和ReentrantReadWriteLock的源码来介绍独享锁和共享锁。 独享锁也叫排他锁,是指该锁一次只能被一个线程所持有。如果线程T对数据A加上排它锁后,则其他线程不能…

Linux典型IO模型:阻塞、非阻塞、信号驱动、异步

目录 一、阻塞IO 二、非阻塞IO 三、信号驱动IO 四、异步IO 五、阻塞VS非阻塞(概念) 1.阻塞 2.非阻塞 3.区别与联系 六、同步VS异步(概念) 1.同步 2.异步 3.区别与联系 IO就是输入输出 一、阻塞IO 为了完成IO发起IO调…

高通平台开发系列讲解(充电篇)充电管理芯片PM7250B详解

文章目录 一、PM7250B硬件组成二、充电功能沉淀、分享、成长,让自己和他人都能有所收获!😄 📢充电管理芯片PM7250B,用于控制电池充电相关逻辑。 一、PM7250B硬件组成 PWM = Pulse Width Modulator,脉宽调制。SPMS = Switched Mode Power Supply,开关电源。GPIO = Gen…

接口测试(八)—— 日志收集、全量字段校验、JSON Schema语法

目录 一、日志收集 1、日志简介 2、日志的级别 3、日志代码实现分析 4、日志使用 二、全量字段校验 1、简介和安装 2、JSON Schema⼊⻔ 2.1 入门案例 2.2 校验方式 3、JSON Schema语法 3.1 type关键字 3.2 properties关键字 3.3 required关键字 3.4 const关键字…

ADI Blackfin DSP处理器-BF533的开发详解61:DSP控制ADXL345三轴加速度传感器-LCD(含源码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度传感器的子卡,插在这个板子上,然后写了一些有意思的应用程序。 代码实现功能…

[C++]类和对象【中】

🥁作者: 华丞臧 📕​​​​专栏:【C】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉LeetCode 文章目录类的六个…

推荐一个.Net分布式微服务开发框架

在给大家介绍之前,我们一起来看看分布式架构的使用场景与好处。 针对一些互联网系统,大数据、高并发和快速响应,都是系统必须满足的,而单机系统的架构是无法满足这样的需求的,这时候我们就需要用到分布式的架构。 分…

ADI Blackfin DSP处理器-BF533的开发详解60:DSP控制ADXL345三轴加速度传感器-电子水平仪(含源码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度传感器的子卡,插在这个板子上,然后写了一些有意思的应用程序。 代码实现功能…

SpringBoot集成JWT实现Token登录验证

1JWT 1.1 JWT是什么? JSON Web令牌(JWT)是一种开放的标准(RFC 7519),它定义了一种紧凑而独立的方式在各方之间安全地传输信息为JSON对象。该信息可以被验证和信任,因为它是数字签名的。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公开…

全国A级景区数据(12000条)

中华人民共和国旅游景区依据质量等级划分景区级别,共分为五级。其中5A级为中国旅游景区最高等级,代表着中国世界级精品的旅游风景区。 而随着国家旅游管理部门对于A级景区实行“有进有出”的动态管理以来,A级景区的调整越来越常态化,其中不乏4A、5A级景区的调整,这也为A级…

使用 NuGet 快速创建 OpenGL 项目

C 目前还没有一个标准的 C 依赖包管理器,传统上都是手动去下载源码编译(经典的例如 make),或者直接下载预编译好的库文件(例如没有开源的)和头文件。之后在项目里配置对应的头文件路径和库路径。这个过程非…

[附源码]Nodejs计算机毕业设计基于响应式交友网站Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

蚁巢相遇问题

一 问题描述 有 N 个蚁巢,编号为 1~N 。第 i 个蚁巢的位置是(xi , yi),没有两个蚁巢在同一位置。所有蚂蚁都遵守一些规律: ① 当一只蚂蚁在蚁巣 p 时,它总是移动到离 p 最近的另一个蚁巣,若有多个蚁巣与 …

计算机毕设Python+Vue心理健康网站(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[leetcode 739] 每日温度

题目链接:https://leetcode.cn/problems/daily-temperatures/ 第一个想法是简单两个 for 循环,但是可能会超时(其实用C不会超时)。 因为最近在做栈的题目,所以想到了最小栈(原来叫作最小栈啊~)…

Rust 从入门到放弃,再入门到贡献 nacos-sdk-rust

Rust 从入门到放弃,再入门到贡献 nacos-sdk-rust Rust 上手难度大?我想是的。从文章标题便可知一二,小编水平有限经历了多次入门,得来的经验之谈。本文不涉及详细的技术剖析,仅表达入门的心路历程,供客官参…

Centos7配置nfs

NFS NFS 就是 Network FileSystem ,此系统可以让不同操作系统、不同主机通过网络彼此分享文件,可以将其视为一个文件服务器。使用NFS可以将远程NFS服务器的分享目录挂载到本地主机上,本地主机访问共享目录就是访问远程的NFS服务器。本地主机被称为客户端…

Nacos 简介与 本地调试环境搭建

目录 1、简介 2、Nacos架构 3、本地调试环境搭建 3.1 源码下载 3.3 单机启动 Nacos 3.4 集群方式启动:基于文件方式 4、Nacos源码模块介绍 5. 约定说明 1、简介 Nacos是Dynamic Naming and Configuration Service的首字母简称 Nacos由阿里巴巴开源&#x…

PyTorch入门

开发环境 ANACONDA 官网:Anaconda | The World’s Most Popular Data Science Platform cmd窗口验证安装成功 CUDA 官网:CUDA Toolkit Archive | NVIDIA Developer 选择匹配pytorch的版本下载安装 命令窗口验证安装成功 PyTorch 官网:…

【JavaSE】泛型

目录 一、泛型概念 二、泛型的语法 1、语法 2、实例化 4、泛型如何编译 5、泛型的上界 6、泛型方法 三、通配符 1、使用场景 2、使用 3、通配符的上下界 一、泛型概念 泛型就是适用于许多许多类型,是在jdk1.5引入的 二、泛型的语法 1、语法 class 类名&l…