Элемент проекта вида «HttpСервис»
При реализации HTTP-сервиса вам нужно определить следующие элементы:
- КорневойUrl — базовая часть URL, по которой будет выполняться обращение к сервису.
- ШаблоныUrl — состав предоставляемой функциональности и структура ресурсов, на которые эта функциональность будет отображаться (шаблоны).
- Методы — действия, которые можно будет выполнить при обращении к тому или иному ресурсу.
- Обработчик — для каждого выбранного действия вы пишете на встроенном языке метод, который и реализует необходимую функциональность. Методы находятся в модуле HTTP-сервиса. Например, HTTP-сервис может выглядеть следующим образом:
ВидЭлемента: HttpСервис
Id: a565661f-f458-465b-8f71-1f90cd490890
ОбластьВидимости: ВПодсистеме
Имя: СделкиHttpСервис
КорневойUrl: /opportunities
ШаблоныUrl:
-
Имя: ПолучитьСделки
Шаблон: /
Методы:
-
Метод: GET
Обработчик: ПолучитьСделки
-
Имя: ПолучитьСделку
Шаблон: /{opportunity}
Методы:
-
Метод: GET
Обработчик: ПолучитьСделку
КонтрольДоступа:
Разрешения:
Вызов: РазрешеноАутентифицированным
ПоУмолчанию: РазрешеноАутентифицированным
Корректный URL запроса к HTTP-сервису должен иметь следующую структуру:
{АдресПубликацииПриложения}/api/{КорневойURLСервиса}/{ПутьКРесурсу}?{ПараметрыЗапроса}
Например:
http://myserver:9090/applications/tasks/api/myservice/myMethod?param1=value1
Рассмотрите части запроса по порядку:
-
http или https:
http://
Используемый протокол
-
АдресПубликацииПриложения:
myserver:9090/applications/tasks/
Адрес HTTP-сервера и путь публикации приложения на сервере
-
api:
api/
Признак того, что данный URL представляет запрос к публичному api приложения
-
КорневойURLСервиса:
myservice/
Относительный URL сервиса. Должен быть уникальным среди всех сервисов в проекте. Определяет конкретный сервис, который должен обработать запрос
-
ПутьКРесурсу:
myMethod
Путь к ресурсу в пределах сервиса. Сопоставляется по определенным правилам с шаблонами URL сервиса, и в итоге выбирается один шаблон, который отвечает за обработку запроса
-
ПараметрыЗапроса:
?param1=value1
Стандартный способ передачи параметров запроса через URL. Параметры запроса передаются через URL только для GET- и HEAD-запросов. Для всех остальных методов параметры передаются в теле запроса
Кроме URL на маршрутизацию запроса также влияет HTTP-метод запроса. Например, для одного и того же URL запроса может быть несколько обработчиков для разных методов.
ШаблоныUrl:
-
Имя: ГрафикиРаботы
Шаблон: /
Методы:
-
Метод: PUT
Обработчик: ОбновитьГрафикиРаботы
-
Имя: ГрафикРаботы
Шаблон: /{ID}
Методы:
-
Метод: PUT
Обработчик: ОбновитьГрафикРаботы
-
Метод: GET
Обработчик: ПолучитьГрафикРаботы
-
Метод: DELETE
Обработчик: УдалитьГрафикРаботы
Права
Элемент проекта вида HttpСервис обладает правом Вызов (подробнее).
Событие ВычислитьРазрешенияДоступа
следует обрабатывать в модуле Http-сервиса.