Налаштування
Власного дерева конфігурації бандл не має: REST-входи задаються файлами маршрутів, а решта береться з налаштувань JsonRpcBundle ufo_json_rpc (Налаштування бандлу).
Маршрути
Кожен REST-вхід — окремий імпорт config/router.yaml бандла:
# config/routes/ufo_rest_api.yaml
ufo_rest_api:
resource: ../../vendor/ufo-tech/rest-bundle/config/router.yaml
prefix: /rest
trailing_slash_on_root: false
| Ключ імпорту | Що задає |
|---|---|
prefix |
Адреса входу; документація — за самим префіксом, методи — під ним |
defaults: { api_group: <група> } |
Група API входу; без нього — general |
name_prefix |
Додатковий префікс назв маршрутів, якщо одна група імпортується двічі |
trailing_slash_on_root |
false, щоб документація відповідала за /rest, а не /rest/ |
Подробиці — у розділі Маршрутизація.
Що використовується з ufo_json_rpc
| Параметр | Для чого в REST |
|---|---|
security.protected_api |
Перевіряти токен для REST-викликів |
security.protected_doc |
Перевіряти токен для OpenAPI і Postman |
security.token_name |
Назва заголовка з токеном |
security.clients_tokens, security.providers |
Дійсні токени, окремо для груп API |
docs.project_name, docs.project_description |
info.title і info.description в OpenAPI, назва колекції Postman |
translations.paths |
Додаткові теки з перекладами назв і описів методів (з 1.3) |
# config/packages/ufo_json_rpc.yaml
ufo_json_rpc:
security:
protected_api: true
protected_doc: false
token_name: 'Ufo-RPC-Token'
clients_tokens:
- '%env(resolve:UFO_API_TOKEN)%'
docs:
project_name: 'My Project'
project_description: 'Public API'
Зміни в цих параметрах однаково діють на JSON-RPC і REST. Окремо налаштувати REST, наприклад відкрити документацію REST, але закрити RPC, не можна.
Як працюють токени для REST — на сторінці Безпека.