Перейти к основному содержимому

Структура модуля экспортируемой функциональности

Каждый модуль, который реализует методы сервиса, должен содержать.

Обязательные методы:

  • ЗарегистрироватьОписание(КорневойОбъект) - Формирует OpenAPI-описание методов (запросов), которые реализует модуль.
  • ЗарегистрироватьШаблоны(ШаблоныСервиса) - Регистрирует шаблоны запросов, обрабатываемых модулем.
  • ВызватьОбработчик(Обработчик, ПараметрыЗапроса, СтатусОбработкиЗапроса, ОбработчикВыполнен) - Выполняет обработку запроса.

Дополнительные (для стандартизации нейминга и удобства чтения):

  • Обработчики() - Возвращает структуру обработчиков запросов
  • Обработчик[ИмяОбработчика](ПараметрыЗапроса, СтатусОбработкиЗапроса) - Обработчик конкретного запроса

Расширение содержит общий модуль РатШаблонМодуля, который вы можете использовать за основу.

Дальше подробно пройдемся по каждому методу.

Метод ЗарегистрироватьОписание. Описание API

Расширение предоставляет описание всех реализуемых методов в формате OpenAPI. Для удобства формирования созданы модули - РатOpenAPI и РатСпецификация. Первый реализует "низкоуровневый" API, являясь просто оберткой на OpenAPI. Второй уже более "умный" и заточен под специфику расширения.

Метод принимает параметр КорневойОбъект, это и есть описание api расширения, в каждом модуле он наполняется данными и сериализуется в json.

Примеры работы этого метода вы можете подсмотреть в других модулях.

Метод ЗарегистрироватьШаблоны

"Рассказывает" системе, какие http-запросы обрабатывает модуль.

РатШаблоныАдресов.ДобавитьШаблон(ШаблоныСервиса, Методы.GET, "/АктивныеПользователи", Обработчики.СписокАктивныхПользователей, 0);
РатШаблоныАдресов.ДобавитьШаблон(ШаблоныСервиса, Методы.DELETE, "/АктивныеПользователи/{НомерСеанса}", Обработчики.ЗавершениеСеанса, 0);

Метод ВызватьОбработчик

Когда система на основании шаблонов из метода ЗарегистрироватьШаблоны определила нужный обработчик, она его вызовет через метод ВызватьОбработчик.

Метод принимает идентификатор обработчика, на основании которого вам необходимо вызвать соответствующую функцию.

Функция ВызватьОбработчик(Обработчик, ПараметрыЗапроса, СтатусОбработкиЗапроса, ОбработчикВыполнен) Экспорт

    // TODO Пример алгоритма подбора обработчика. Исправить на свои обработчики
    Обработчики = Обработчики();
    Результат = Неопределено;

    Если Обработчик = Обработчики.СписокАктивныхПользователей Тогда
        
        Результат = ОбработчикСписокАктивныхПользователей(ПараметрыЗапроса, СтатусОбработкиЗапроса);
        ОбработчикВыполнен = Истина;
        
    ИначеЕсли Обработчик = Обработчики.ЗавершениеСеанса Тогда
        
        Результат = ОбработчикЗавершениеСеанса(ПараметрыЗапроса, СтатусОбработкиЗапроса);
        ОбработчикВыполнен = Истина;
        
    КонецЕсли;

    Возврат Результат;

КонецФункции

Параметры:

  • Обработчик - Идентификатор обработчика, указанный в шаблоне.
  • ПараметрыЗапроса - Данные, извлеченные из запроса: параметры URL и тело запроса.
  • СтатусОбработкиЗапроса - Служебные данные, основное назначение - фиксация возникших ошибок.
  • ОбработчикВыполнен - Служебный флаг для контроля корректной обработки запроса. Его нужно устанавливать в Истина при выполнении обработки запроса.

Метод Обработчики

Возвращает структуру идентификаторов обработчиков. Полезно использовать во избежание проблем с опечатками и подобных.

Метод Обработчик[ИмяОбработчика]

Реализация конкретного обработчика запроса. Метод выполняет полезную работу и возвращает сериализуемый в JSON объект ответа.