Элемент проекта вида «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/api/myservice/myMethod?param1=value1
- АдресПубликацииПриложения
- Адрес HTTP-сервера и путь публикации приложения на
сервере
http://myserver:9090/applications/tasks/api/myservice/myMethod?param1=value1
- api
- Признак того, что данный URL представляет запрос к публичному api
приложения
http://myserver:9090/applications/tasks/api/myservice/myMethod?param1=value1
- КорневойURLСервиса
- Относительный URL сервиса. Должен быть уникальным среди всех сервисов в проекте. Определяет конкретный сервис, который должен
обработать
запрос
http://myserver:9090/applications/tasks/api/myservice/myMethod?param1=value1
- ПутьКРесурсу
- Путь к ресурсу в пределах сервиса. Сопоставляется по определенным правилам с
шаблонами URL сервиса, и в итоге выбирается один шаблон, который отвечает за
обработку
запроса
http://myserver:9090/applications/tasks/api/myservice/myMethod?param1=value1
- ПараметрыЗапроса
- Стандартный способ передачи параметров запроса через URL. Параметры запроса передаются через URL только для GET- и HEAD-запросов. Для
всех остальных методов параметры передаются в теле
запроса
http://myserver:9090/applications/tasks/api/myservice/myMethod?param1=value1
Кроме URL на маршрутизацию запроса также влияет HTTP-метод запроса. Например, для одного и того же URL запроса может быть несколько обработчиков для разных методов.
ШаблоныUrl:
-
Имя: ГрафикиРаботы
Шаблон: /
Методы:
-
Метод: PUT
Обработчик: ОбновитьГрафикиРаботы
-
Имя: ГрафикРаботы
Шаблон: /{ID}
Методы:
-
Метод: PUT
Обработчик: ОбновитьГрафикРаботы
-
Метод: GET
Обработчик: ПолучитьГрафикРаботы
-
Метод: DELETE
Обработчик: УдалитьГрафикРаботы
Вид HttpСервис предоставляет следующую функциональность и логику работы:
- Порождаемые типы встроенного языка
- HTTP-сервис, добавленный в проект, порождает во встроенном языке один тип, в модуле которого вы можете разместить все обработчики методов HTTP-сервиса
- Выбор сервиса
- Относительный URL сервиса может состоять из нескольких сегментов. Это может быть полезно в сценариях, когда требуется одновременная работа с разными версиями сервиса
- Выбор шаблона URL
- Шаблоны URL служат двум целям: они выбирают обработчик для заданного пути к ресурсу и предоставляют удобный способ работы с параметрами, включенными в путь к ресурсу
- Выбор обработчика
- Вы можете использовать обработчик для конкретного метода или обработчик, назначенный по умолчанию
- Параметры запроса
- Существует три способа передачи параметров в HTTP-запрос
- Обработка запроса
- Для обработки запросов необходимо для каждого метода в описании HTTP-сервиса создать в модуле HTTP-сервиса метод-обработчик с именем, совпадающим с именем обработчика, заданным в реквизитах метода
- Аутентификация внешних программ
- Если пользователь представляет собой не человека, а внешнюю информационную систему, то для аутентификации используются токены доступа
- Права
- Элемент проекта вида HttpСервис обладает правом Вызов (подробнее)
- Все свойства HTTP-сервиса
- Здесь описано назначение всех свойств HTTP-сервиса, которые вы можете менять в проекте