Параметры запроса
RouteConfig::PARAMETERS содержит массив: имя параметра → настройки проверки.
Формат запроса
Модуль поддерживает JSON-тело запроса, POST-поля и параметры URL. XML и SOAP не поддерживаются как форматы входящих запросов.
Ключи параметра
| Константа | Значение |
|---|---|
| ParameterConfig::REQUIRED | required |
| ParameterConfig::TYPE | type |
| ParameterConfig::POSSIBLE_VALUE | possibleValue |
| RouteConfig::PARAMETERS | parameters |
| RouteConfig::DESCRIPTION | description |
| ParameterConfig::EXAMPLE | example |
Вложенные поля задаются в parameters: см. вложенные параметры.
description и example используются для рендера документации.
Обязательность и тип
При required => true отклоняются отсутствующее значение, null, пустая строка и пустой массив.
0 и false сами по себе не считаются пустыми.
| Тип | Допустимое значение |
|---|---|
| string | Строка |
| integer | Целое число или строка из цифр с необязательным начальным - |
| array | PHP-массив, включая объект или список из JSON |
Константы: TypeConfig::STRING, TypeConfig::INTEGER, TypeConfig::ARRAY. Без type тип не проверяется. Значения не преобразуются.
Допустимые значения
possibleValue принимает непустой массив значений либо диапазон из трёх элементов: нижняя граница, '...', верхняя граница.
Границы включаются в диапазон.
// Одно из перечисленных значений
ParameterConfig::POSSIBLE_VALUE => ['new', 'completed', 'cancelled'],// От 1 до 100 включительно
ParameterConfig::POSSIBLE_VALUE => [1, '...', 100],Список сравнивается после приведения значений к строке.
Диапазон допускает целые числа, строки целых чисел и числа PHP типа float.
Непустой possibleValue заменяет проверки type и вложенных parameters. Проверка required сохраняется.
Порядок проверки
Для каждого параметра, описанного в карте:
Параметр передан?
├─ Нет → required: true → ошибка обязательности
│ иначе → пропустить параметр
│
└─ Да → проверить required
│
└─ Проверка пройдена
├─ possibleValue задан и непустой
│ └─ Проверить список или диапазон
│ На этом проверка параметра завершена
│
└─ possibleValue не задан или пустой
└─ Проверить type, если задан
└─ Тип допустим → проверить вложенностьОшибка обязательности или типа останавливает проверку этого параметра. Остальные параметры продолжают проверяться; ошибки собираются в один ответ.
Источники данных
Строка запроса
↓
POST-поля
↓
JSON-тело
↓
Параметры адреса
↓
─────────────────────
Все параметры запросаПри совпадении имени значение из источника ниже заменяет предыдущее.
Поля, не описанные в карте, не удаляются и не проверяются.
Ошибка проверки возвращает PARAMETERS_INVALID (HTTP 400) с указанием проблемных полей.