Зміни в документі 3. Власні API методи
Остання зміна 2024/05/16 12:34 автором Ashterix
Підсумок
-
Властивості сторінки (2 змінено, 0 додано, 0 видалено)
Подробиці
- Властивості сторінки
-
- Назва
-
... ... @@ -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 +Припускаю, що у вас може статися ситуація коли вже все налаштовано