Eloquent: Ресурсы API против Фрактала

Быстрый вопрос, в чем разница между Eloquent: ресурсами API и Fractal?

Для меня это выглядит так же?

1 ответ

Решение

Оба используются для преобразования ответов API json для стандартизации структуры ответов.

Тем не менее, ресурсы API встроены в Laravel и очень просты в использовании. Фрактал был предпочтительным способом, когда ресурсы API не были встроены в Laravel. У Fractal есть несколько методов, которые делают его немного более обширным по сравнению с ресурсами API.

Но если учесть основные функциональные возможности, оба они одинаковы с разным синтаксическим сахаром.

Большинство вещей, которые были во фрактале, вы можете сделать изначально в Laravel. Плюс ресурсы API избавляют от необходимости дополнительной установки и настройки. В ресурсах API очень легко начать номенклатуру

Оба они созданы для одной работы, но их решения во многом различаются.

Отношения:

во фрактале вы можете легко добавить связанные модели к ответу. Кроме того, вы можете указать, когда соответствующие модели должны быть представлены в ответе. (по умолчанию включить или включить)

например, ваш клиент может использовать ?include=rateпри необходимости получить тарифную модель из статьи! Учтите, что фрактал будет загружать ваши отношения, когда вы забудете его загрузить.

в ресурсах API у вас нет контроля над отношениями, и вы должны решить, иметь отношения или нет, в первую очередь. в противном случае, если вы забыли загрузить для него данные, вам потребуется слишком много запросов для загрузки связанной модели (проблема 1+n).

Сериализатор

при базовом использовании ресурса api вы не можете контролировать, как данные будут отображаться в окончательном ответе.

например, если вам нужна спецификация jsonnapi для ваших ответов, вам следует управлять всеми работами самостоятельно. но во фрактале он у вас в первую очередь.

В заключение я рекомендую вам использовать фрактал в этом случае. (или используйте пакет dingo для api, но учитывайте сложность dingo!!)

Другие вопросы по тегам