Виправлені помилки

← Виправлені помилки

Ashterix

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

uk/docs/api/rest-bundle/developers/known_issues/fixed.md новий файл +33 −0

Виправлені помилки

Помилки попередніх версій і версія, з якої їх виправлено. Якщо ви на зачепленій версії — оновіться або скористайтеся обхідним шляхом. Актуальні помилки — на сторінці Актуальні помилки.

<include>(.issues/post-response-not-fired.md)


<include>(.issues/path-query-not-cast.md)


<include>(.issues/error-mapping-order.md)


<include>(.issues/application-error-status.md)


<include>(.issues/rest-application-exception.md)


<include>(.issues/postman-adapter-request-stack.md)


<include>(.issues/malformed-json-ignored.md)


<include>(.issues/wrong-method-404.md)

uk/docs/api/rest-bundle/developers/known_issues/.issues/post-response-not-fired.md новий файл +10 −0

REST-виклики не генерували rpc.post_response

Виправлено в 1.3 (ще не випущена)

Зачеплені версії: 1.0.0 — 1.2.0. За описом релізу 1.3.

Симптом. Після REST-виклику не спрацьовували лістенери rpc.post_response: інвалідація #[RPC\CacheRelation], асинхронні й post-response лістенери застосунку.

Виправлення. Контролер виконує запит через RpcExecutor JsonRpcBundle 10.4.2; успішний виклик отримує rpc.post_response на kernel.terminate.

uk/docs/api/rest-bundle/developers/known_issues/.issues/path-query-not-cast.md новий файл +9 −0

Значення шляху й query не підходили для типізованих параметрів

Виправлено в 1.3 (ще не випущена)

Зачеплені версії: 1.0.0 — 1.2.0.

Симптом. GET /rest/catalog/items/42 для item(int $id) повертав 400 з must be of type int, string given.

Виправлення. RpcFromRest приводить рядки зі шляху, query і форми до оголошеного скалярного типу параметра — див. Параметри запиту.

uk/docs/api/rest-bundle/developers/known_issues/.issues/error-mapping-order.md новий файл +11 −0

Невідомий метод і помилки обмежень повертали 400

Виправлено в 1.3 (ще не випущена)

Зачеплені версії: 1.0.0 — 1.2.0.

Симптом. RpcMethodNotFoundExceptionRpc і ConstraintsImposedException поверталися як 400 замість 404 і 422.

Причина. Обидва класи — підкласи RpcBadRequestException, який стояв у RestErrorNormalizer::ERROR_MAPPING раніше за них; крім того, RestValidationException не реалізовував RestErrorInterface і не створювався без масиву обмежень.

Виправлення. Підкласи перевіряються перед батьківськими класами; RestValidationException реалізує RestErrorInterface і бере обмеження з попереднього винятку.

uk/docs/api/rest-bundle/developers/known_issues/.issues/application-error-status.md новий файл +11 −0

HTTP-код прикладної помилки ігнорувався

Виправлено в 1.3 (ще не випущена)

Зачеплені версії: 1.0.0 — 1.2.0.

Симптом. throw new CustomApplicationException('Order is closed', 409) з методу повертав 400.

Причина. RestErrorNormalizer створював REST-виняток з кодом 0 для класів з таблиці, а для решти перевіряв код через in_array() по текстах статусів, тож перевірка ніколи не спрацьовувала.

Виправлення. HTTP-код помилки з винятку зберігається — див. Обробка помилок.

uk/docs/api/rest-bundle/developers/known_issues/.issues/rest-application-exception.md новий файл +11 −0

RestApplicationException не завантажувався

Виправлено в 1.3 (ще не випущена)

Зачеплені версії: 1.0.0 — 1.2.0.

Симптом. Фатальна помилка під час використання RestApplicationException або перетворення прикладної помилки.

Причина. Клас успадковував Ufo\RpcError\RpcCustomApplicationException, якого немає в ufo-tech/rpc-exceptions 2.x.

Виправлення. Клас успадковує Ufo\RpcError\CustomApplicationException; аргументи конструктора необов'язкові.

uk/docs/api/rest-bundle/developers/known_issues/.issues/postman-adapter-request-stack.md новий файл +12 −0

Колекція Postman падала з JsonRpcBundle 10.3+

Виправлено в 1.3 (ще не випущена)

Зачеплені версії: 1.2.0. За описом релізу 1.3.

Симптом. GET /rest/postman завершувався фатальною помилкою з JsonRpcBundle 10.3 і новіше.

Причина. PostmanAdapter перевизначав властивість $requestStack, яку в 10.3 отримав базовий AbstractPostmanAdapter.

Виправлення. RequestStack передається в конструктор базового адаптера.

uk/docs/api/rest-bundle/developers/known_issues/.issues/malformed-json-ignored.md новий файл +9 −0

Некоректне JSON-тіло ігнорувалось

Виправлено в 1.1.0

Зачеплені версії: 1.0.0.

Симптом. Метод виконувався без параметрів з тіла, якщо тіло не було коректним JSON.

Виправлення. Некоректне або скалярне JSON-тіло повертає 400.

uk/docs/api/rest-bundle/developers/known_issues/.issues/wrong-method-404.md новий файл +9 −0

Неправильний HTTP-метод повертав 404

Виправлено в 1.1.0

Зачеплені версії: 1.0.0.

Симптом. Запит до наявного шляху з HTTP-методом, якого немає в #[Route], повертав 404.

Виправлення. Кожен REST-маршрут отримує запасний маршрут <назва>_method_not_allowed, і такий запит повертає 405.