Параметры запроса
Параметры запроса могут быть переданы тремя способами:
- Через внедрение в путь к ресурсу.
- Через параметры в URL, например, {ResourceURL}?param1=value1¶m2=value2.
- В теле запроса с Content-Type = application/x-www-form-urlencoded.
Если один и тот же параметр присутствует в пути к ресурсу и в параметрах HTTP-запроса, то «1С:Шина» трактует это как несколько значений одного параметра. Через путь к ресурсу можно передать не более одного значения, и это значение всегда будет первым в списке значений.
Порядок добавления параметров в словарь:
- Добавляются параметры, переданные через путь к ресурсу.
- Добавляются параметры, переданные через параметры URL.
- Если у запроса есть тело и тип содержимого application/x-www-form-urlencoded, то добавляются параметры из тела запроса.
- На каждом этапе, если добавляемый параметр уже есть в словаре, к существующему параметру добавляется еще одно значение.
Примеры передачи параметров
Пускай нужно передать в HTTP-сервис два параметра: имя пользователя и номер страховки.
Первый способ. Можно передать эти параметры непосредственно в пути к ресурсу. Для этого нужно определить соответствующий шаблон URL:
ШаблоныUrl:
-
Имя: Первый
Шаблон: /operation/{UserName}/{SecurityNumber}
Методы:
-
Данный способ подходит для любого типа запроса: GET, POST, PUT и др. Например:
GET /userService/operation/ivanov/123456
Второй способ. Также в случае GET- и HEAD-запросов можно передать эти параметры через параметры URL:
GET /userService/operation?UserName=ivanov&SecurityNumber=1234567
Третий способ. В случае POST запроса можно передать параметры в теле запроса с использованием типа содержимого application/x-www-form-urlencoded:
POST /userService/operation
Тело запроса:
POST infobaseName/api/userService/operation HTTP/1.0
From: frog@jmarshall.com
User-Agent: HTTPTool/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 39
UserName=ivanov&SecurityNumber=1234567