Ответы пользователя по тегу RESTful API
  • Как обработать GET-запрос на несуществующий элемент?

    Nexen2
    @Nexen2
    Web backend Yii2/Symfony Coder
    Или сделать json-api, где будет возвращатся запись вида [status: error, message: "not found"].

    Сделал я как то энпоинт /user/reset/{token} для сброса паролей у юзеров. Потом появился еще и сброс емейла, для тех кто потерял доступ к мылу или мыло забыл, появился ресет-пароль и ресет-емейл. А вот в клиенте изменить УРЛ я забыл. Что было дальше? Правильно, клиент думал что все путем, просто дурные клиенты всё день за днем неправильные токены подсовывают (которых нет а БД, 404). Пока через неделю при мердже совсем другой ветки репозитория не запустили автотесты, которые этот баг показали.
    Ответ написан
    Комментировать
  • Как правильно использовать вложенные сущности в ответе REST?

    Nexen2
    @Nexen2
    Web backend Yii2/Symfony Coder
    В Yii2 реализован такой встроенный парсер URLов:
    В обычном случае при запросе на эндпоинт назад возвращается плоский жсон с данными. Автор будет числом (идентификатор). Если в URL добавить ?expand=афтор движок автоматически запросит в БД инфу о авторе и вставит её подмассивом там где был идентификатор. Ессно, список разрешенных / запрещенных для разворачивания релейшенов присутсвует.
    Можно заделать и так: expand=аффтор,аффтор.комментарии, тогда кроме автора будет еще третий уровень вложенности, подмассив последних камментов автора (по умолчанию в Yii2 это 20, опять же настравивается как на бекенде, так и perpage в URL).
    Ответ написан
    Комментировать