Вікі-код для Встановлення

Версія 13.1 додана 2024/05/08 20:47 автором Ashterix

Показати останніх авторів
1 {{box cssClass="floatinginfobox" width="400px" title="**Зміст**"}}
2 {{toc/}}
3 {{/box}}
4
5 = Крок 0: Налаштування composer.json =
6
7 Для того, щоб при додаванні пакету, ваш Symfony Flex автоматично зробив всі необхідні налаштування, потрібно внести наступні зміни в ваш {{code language="none"}}composer.json{{/code}}
8
9 {{code language="json"}}
10 {
11 "extra" : {
12 "symfony": {
13 "endpoint": [
14 "https://api.github.com/repos/ufo-tech/recipes/contents/index.json?ref=main",
15 "flex://defaults"
16 ]
17 }
18 },
19 }
20 {{/code}}
21
22 {{info}}
23 Детально про Symfony Flex в [[документації Symfony>>url:https://symfony.com/doc/current/setup/flex_private_recipes.html]]
24 {{/info}}
25
26
27 = Крок 1: Встановлення =
28
29 В консолі в теці проєкту виконайте цю команду, щоб завантажити останню версію цього пакету:
30
31 {{code language="bash"}}
32 composer require ufo-tech/json-rpc-bundle
33 {{/code}}
34
35 {{info}}
36 Ця команда актуальна якщо ви встановили Composer глобально, як описано в [[документації>>https://getcomposer.org/doc/00-intro.md]] Composer.
37 {{/info}}
38
39
40
41 = Крок 2: Реєстрація пакету =
42
43 Переконайтесь, що пакет автоматично зареєструвався в файлі {{code language="none"}}config/bundles.php{{/code}} вашого проєкту:
44
45 {{code language="php"}}
46 <?php
47 // config/bundles.php
48
49 return [
50 // ...
51 Ufo\JsonRpcBundle\UfoJsonRpcBundle::class => ['all' => true],
52 // ...
53 ];
54 {{/code}}
55
56
57
58 = Крок 3: Додавання параметрів =
59
60 {{warning}}
61 **Якщо ви виконали «Крок 0», це налаштовано автоматично і ви можете пропустити цей крок.**
62 {{/warning}}
63
64 В разі ручного налаштування бандлу, додайте (% id="cke_bm_4952S" style="display:none" %) (%%)до папки {{code language="none"}}config/packages{{/code}} файл {{code language="none"}}ufo_json_rpc.yaml{{/code}} із таким вмістом:
65
66 {{code language="yaml"}}
67 # config/packages/ufo_json_rpc.yaml
68 ufo_json_rpc:
69 security:
70 protected_methods: ['POST'] # Protection of GET and POST requests
71 token_key_in_header: 'Ufo-RPC-Token' # Name of the key in the header
72 clients_tokens:
73 - 'ClientTokenExample' # Hardcoded token example. Importantly!!! Replace or delete it!
74 - '%env(resolve:UFO_API_TOKEN)%' # Token example from .env.local
75
76 # Configuration for API documentation
77 docs:
78 # Optional response details
79 response:
80 key_for_methods: services # Key used to map services for API methods
81 # Information about validations
82 validations:
83 json_schema: false # Indicates if JSON-schema is used for method validation
84 symfony_asserts: false # Indicates if an array of Symfony validation constraints is used
85
86 {{/code}}
87
88 (% class="wikigeneratedid" %)
89 Детальний огляд параметрів налаштування доступний в розділі [[Налаштування бандлу>>doc:docs.JsonRpcBundle.config]]
90
91
92
93 = Крок 4: Реєстрація маршрутів =
94
95 {{warning}}
96 **Якщо ви виконали «Крок 0», це налаштовано автоматично і ви можете пропустити цей крок.**
97 {{/warning}}
98
99 (% id="cke_bm_19449S" style="display:none" %) (%%)В разі ручного налаштування бандлу, додайте (% id="cke_bm_4952S" style="display:none" %) (%%)до папки {{code language="none"}}config/routes{{/code}} файл {{code language="none"}}ufo_json_rpc.yaml{{/code}} із таким вмістом:
100
101 {{code language="yaml"}}
102 # config/routes/ufo_json_rpc.yaml
103 ufo_json_rpc:
104 resource: ../../vendor/ufo-tech/json-rpc-bundle/config/router.yaml
105 prefix: /api
106 trailing_slash_on_root: false
107 {{/code}}
108
109 Якщо лишити налаштування як є, то RPC API буде доступне по шляху {{code language="none"}}/api{{/code}} наприклад {{code language="none"}}https://example.com/api{{/code}}
110 Якщо вам потрібно змінити шлях, змініть налаштування маршруту таким чином:
111
112 {{code language="yaml"}}
113 # config/routes/ufo_json_rpc.yaml
114 ufo_json_rpc_bundle:
115 resource: ../../vendor/ufo-tech/json-rpc-bundle/config/router.yaml
116 prefix: /my_custom_api_route #вкажіть тут альтернативний шлях
117 trailing_slash_on_root: false
118 {{/code}}
119
120 Тепер API буде доступне по шляху {{code language="none"}}https://example.com/my_custom_api_route{{/code}}
121
122
123
124 = Крок 5: Profit =
125
126 {{success}}
127 **Вітаю!!!** Ваш RPC сервер готовий до роботи!!!
128 {{/success}}
129
130 = Що далі? =
131
132 == А воно точно працює? (с) ==
133
134 GET запит на точку входу поверне документацію по наявним методам і параметрам, які вони приймають.
135
136 **{{code language="none"}}GET: /api{{/code}}**
137
138 {{code language="json"}}
139 {
140 "transport": "POST",
141 "envelope": "JSON-RPC-2.0/UFO-RPC-6",
142 "contentType": "application/json",
143 "description": "",
144 "target": "/api",
145 "methods": {
146 "ping": {
147 "name": "ping",
148 "description": "",
149 "parameters": [],
150 "returns": "string",
151 "responseFormat": "string"
152 }
153 }
154 }
155 {{/code}}
156
157 Метод {{code language="none"}}ping{{/code}} встановлений одразу, ви можете одразу виконати POST запит, щоб переконатися, що сервер працює.
158
159 (% id="cke_bm_115746S" style="display:none" %)** **(%%)**{{code language="none"}}POST: /api{{/code}}**
160
161 **Request**:
162
163 {{code language="json"}}
164 {
165 "id": "some_request_id",
166 "method": "ping"
167 }
168 {{/code}}
169
170 **Response**:
171
172 {{code language="json"}}
173 {
174 "id": "some_request_id",
175 "result": "PONG"
176 }
177 {{/code}}
178
179 == Змініть налаштування під власні потреби ==
180
181
182 == Додайте власні процедури ==