Пользовательский заголовок с токеном в бизнес-классе PASOE с веб-службой? - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть объект бизнес-класса PASOE, настроенный как веб-служба.Я пытаюсь определить, как создать собственный заголовок, который позволит мне передать хешированный токен.Это то, что мне нужно обновить до 11.7.4 для DOH (OpenEdge.Web.DataObject.DataObjectHandler)?Или это то, что я просто добавляю в метод, определенный в классе?Извиняюсь за отсутствие кода для иллюстрации моей ситуации, но я не уверен, с чего начать.

1 Ответ

0 голосов
/ 25 февраля 2019

Если вы используете Business Entity с веб-транспортом, то вы используете DOH, и применяется следующее.Если вы используете остальной транспорт, то вы не используете DOH и более ограничены в своем выборе.

В DOH доступен документ на https://documentation.progress.com/output/oe117sp/index.html#page/gssp4/openedge-data-object-handler.html- это для 11.7.4, но в основном относится ко всем версиям (то есть начиная с 11.6.3+).Здесь описывается файл отображения JSON, который вам понадобится для создания переопределения по умолчанию, сгенерированного.

Если вы хотите использовать значение заголовка для всех операций, то вы можете использовать один изСобытия DOH.Есть пример обработчиков событий на https://github.com/PeterJudge-PSC/http_samples/blob/master/web_handler/data_object_handler/DOHEventHandler.cls;вам нужно будет запустить этот обработчик в процедуре запуска сеанса, используя new DOHEventHandler() (способ написания кода состоит в том, что он превращается в одиночный).

Теперь вы можете добавить код обработки для события Invokingкоторый запускается до запуска бизнес-логики.

Если вы хотите передать значение заголовка в бизнес-логику, вам нужно будет

  • Скопировать созданный файл сопоставления <service>.gen в<service.map>, в той же папке.«gen» файлы генерируются и будут перезаписаны инструментом
  • . В файле .map добавьте новую запись arg.Это должно быть в том же порядке, что и параметры метода BE.
  • JSON должен выглядеть примерно так, как показано ниже.это прочитает значение заголовка и передаст его в качестве входного параметра в метод.
    { "ablName": "<parameter_name>",
      "ablType": "CHARACTER",
      "ioMode": "INPUT",
      "msgElem": {"type": "HEADER", "name": "<http-header-name>"}
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...