Налаштування

← Налаштування

Ashterix

docs: rewrite JsonRpcBundle docs, add SDK docs, move them under docs/api

uk/docs/api/rest-bundle/config.md новий файл +54 −0

1 + # Налаштування
2 +
3 + Власного дерева конфігурації бандл не має: REST-входи задаються файлами маршрутів, а решта береться з налаштувань JsonRpcBundle `ufo_json_rpc` ([Налаштування бандлу](/docs/api/json-rpc-bundle/config)).
4 +
5 + ## Маршрути
6 +
7 + Кожен REST-вхід — окремий імпорт `config/router.yaml` бандла:
8 +
9 + ```yaml
10 + # config/routes/ufo_rest_api.yaml
11 + ufo_rest_api:
12 + resource: ../../vendor/ufo-tech/rest-bundle/config/router.yaml
13 + prefix: /rest
14 + trailing_slash_on_root: false
15 + ```
16 +
17 + | Ключ імпорту | Що задає |
18 + | --- | --- |
19 + | `prefix` | Адреса входу; документація — за самим префіксом, методи — під ним |
20 + | `defaults: { api_group: <група> }` | [Група API](/docs/api/json-rpc-bundle/functionality/groups) входу; без нього — `general` |
21 + | `name_prefix` | Додатковий префікс назв маршрутів, якщо одна група імпортується двічі |
22 + | `trailing_slash_on_root` | `false`, щоб документація відповідала за `/rest`, а не `/rest/` |
23 +
24 + Подробиці — у розділі [Маршрутизація](/docs/api/rest-bundle/routing).
25 +
26 + ## Що використовується з `ufo_json_rpc`
27 +
28 + | Параметр | Для чого в REST |
29 + | --- | --- |
30 + | `security.protected_api` | Перевіряти токен для REST-викликів |
31 + | `security.protected_doc` | Перевіряти токен для OpenAPI і Postman |
32 + | `security.token_name` | Назва заголовка з токеном |
33 + | `security.clients_tokens`, `security.providers` | Дійсні токени, окремо для груп API |
34 + | `docs.project_name`, `docs.project_description` | `info.title` і `info.description` в OpenAPI, назва колекції Postman |
35 + | `translations.paths` | Додаткові теки з перекладами назв і описів методів (з 1.3) |
36 +
37 + ```yaml
38 + # config/packages/ufo_json_rpc.yaml
39 + ufo_json_rpc:
40 + security:
41 + protected_api: true
42 + protected_doc: false
43 + token_name: 'Ufo-RPC-Token'
44 + clients_tokens:
45 + - '%env(resolve:UFO_API_TOKEN)%'
46 +
47 + docs:
48 + project_name: 'My Project'
49 + project_description: 'Public API'
50 + ```
51 +
52 + Зміни в цих параметрах однаково діють на JSON-RPC і REST. Окремо налаштувати REST, наприклад відкрити документацію REST, але закрити RPC, не можна.
53 +
54 + Як працюють токени для REST — на сторінці [Безпека](/docs/api/rest-bundle/security).