Чтение параметров HTTP заголовка в OData сервисе
Чтение параметров HTTP заголовка в OData сервисе. Добавление пользовательских параметров к HTTP заголовку
В этой заметке я хочу продемонстрировать вариант реализации, который позволит выполнить чтение параметров HTTP заголовка в OData сервисе, относящемуся к вашему SAPUI5 приложению.
Что такое HTTP заголовок?
Cм. HTTP Headers
HTTP headers let the client and the server pass additional information with an HTTP request or response. An HTTP header consists of its case-insensitive name followed by a colon (:), then by its value. Whitespace before the value is ignored.
Пример получения доступа к HTTP заголовку из OData сервиса
Чтобы получить доступ к HTTP заголовку непосредственно в OData сервисе, можно добавить ниже представленный код в задействованный метод *DPC_EXT класса, к которому выполняется обращение из SAPUI5 приложения.
См. Data Provider Class
См. заметку Создание Web приложения с помощью фреймворка SAPUI5 (6) в которой рассматривается пример создания OData сервиса для SAPUI5 приложения
DATA: lt_request_header TYPE tihttpnvp,
ls_request_header LIKE LINE OF lt_request_header.
LOOP AT me->mr_request_details->technical_request-request_header ASSIGNING FIELD-SYMBOL(<fs_req_header>).
ls_request_header-name = <fs_req_header>-name.
ls_request_header-value = <fs_req_header>-value.
APPEND VALUE #( name = <fs_req_header>-name
value = <fs_req_header>-value )
TO lt_request_header.
ENDLOOP.
На ниже представленном видеофрагменте представлена последовательность действий в результате которой, после выполнения запроса в backend-систему из SAPUI5 приложения, заполняется внутренняя таблица lt_request_header, в которой содержатся данные HTTP заголовка.
Пример определения пользовательских параметров в HTTP заголовке
Чтобы определить какие-либо пользовательские параметры в HTTP заголовке, необходимо воспользоваться методом SetHeaders класса sap.ui.model.odata.v2.ODataModel перед выполнением запроса в backend
См. class sap.ui.model.odata.v2.ODataModel
См. setHeaders
Например,
var sUrl = "/sap/opu/odata/SAP/ZAPP12_SRV";
var odataModel = new sap.ui.model.odata.v2.ODataModel(sUrl, {
json: true,
loadMetadataAsync: true
});
var oModel = new sap.ui.model.json.JSONModel();
odataModel.setHeaders({
"myCustomparam1": "userPressed",
"myCustomparam2": new Date(Date.now())
});
Проверяю наличие доступа к определенным в SAPUI5 приложении параметров, добавляемых к HTTP заголовку