Зміни в документі 3. Власні API методи

Остання зміна 2024/05/16 12:34 автором Ashterix

Від версії 3.9
редаговано Ashterix
дата 2024/05/10 10:10
Змінити коментар: Немає коментарів для цієї версії
До версії 3.11
редаговано Ashterix
дата 2024/05/10 10:53
Змінити коментар: Немає коментарів для цієї версії

Підсумок

Подробиці

Властивості сторінки
Назва
... ... @@ -1,1 +1,1 @@
1 -Додавання процедур
1 +Власні API методи
Вміст
... ... @@ -198,10 +198,107 @@
198 198  )))
199 199  )))
200 200  
201 -= Опис методів та параметрів =
201 +(% class="box warningmessage" %)
202 +(((
203 +Для спрощення сприйняття документації, всі подальші приклади буду надавати на одному методі (//**sendEmail**//)
204 +)))
202 202  
206 += Опис методів та параметрів =
207 +
203 203  Документатор спирається на всі наявні дані, що належать методу та його аргументам (назви, типи вхідних і вихідних даних, докблоки). Тож, опис методів і параметрів можна збагатити за рахунок докблоків.
204 204  
205 205  Додамо опис методу і параметрів.
206 206  
212 +(% class="row" %)
213 +(((
214 +(% class="col-xs-12 col-sm-6" %)
215 +(((
216 +{{code language="php" layout="LINENUMBERS" title="== Код =="}}
217 +<?php
218 +// ...
207 207  
220 + /**
221 + * A method for sending an email message
222 + * @param string $email The email address
223 + * @param string $text Message body
224 + * @param string $subject Optional message subject parameter
225 + * @return bool
226 + */
227 + public function sendEmail(
228 + string $email,
229 + string $text,
230 + string $subject = 'Message without subject'
231 + ): bool
232 + {
233 + // some logic send email
234 + return true;
235 + }
236 +
237 +// ...
238 +{{/code}}
239 +
240 +Зверніть увагу на документацію, тепер в ній відображається додаткова інформація про метод і його параметри.
241 +
242 +
243 +)))
244 +
245 +(% class="col-xs-12 col-sm-6" %)
246 +(((
247 +{{code language="json" layout="LINENUMBERS" title="== Документація =="}}
248 +{
249 + "methods": {
250 + "ExampleApi.sendEmail": {
251 + "name": "ExampleApi.sendEmail",
252 + "description": "A method for sending an email message",
253 + "parameters": {
254 + "email": {
255 + "type": "string",
256 + "name": "email",
257 + "description": "The email address",
258 + "optional": false
259 + },
260 + "text": {
261 + "type": "string",
262 + "name": "text",
263 + "description": "Message body",
264 + "optional": false
265 + },
266 + "subject": {
267 + "type": "string",
268 + "name": "subject",
269 + "description": "Optional message subject parameter",
270 + "optional": true,
271 + "default": "Message without subject"
272 + }
273 + },
274 + "returns": "boolean",
275 + "responseFormat": "boolean"
276 + }
277 + }
278 +}
279 +{{/code}}
280 +)))
281 +)))
282 +
283 +
284 +(% class="row" %)
285 +(((
286 +
287 +)))
288 +
289 += RPC attributes =
290 +
291 +Для більш гнучкого налаштування ваших методів API JsonRpcBundle використовує такий інструмент як [[php атрибути>>https://www.php.net/manual/en/language.attributes.overview.php]].
292 +
293 +За допомогою спеціалізованих атрибутів ви можете:
294 +
295 +* налаштувати псевдоніми для методів;
296 +* вказати формат відповіді для методів (якщо відповідь у вигляді обʼєкта або масива даних);
297 +* налаштувати валідацію вхідних параметрів;
298 +* налаштувати кешування відповідей.
299 +
300 +Докладніше про атрибути дивись сторінку
301 +
302 +== Псевдоніми API методів ==
303 +
304 +Припускаю, що у вас може статися ситуація коли вже все налаштовано