Реализация JSONAPI - PullRequest
       66

Реализация JSONAPI

2 голосов
/ 22 февраля 2020

Я проводил исследование, чтобы выяснить способ реализации Стандартного JSONAPI (https://jsonapi.org), но я не нашел источника правды или убедительного способа реализовать это.

Чтобы представить это в реальном примере, у нас есть следующий ответ

{
  "data": {
    "type": "articles",
    "id": "1",
    "attributes": {
      // ... this article's attributes
    },
    "relationships": {
      // ... this article's relationships
    }
  }
}

, поэтому ожидаемые объекты - это статья и, возможно, автор. эти объекты хранятся в базе данных (SQL или № SQL), и любой инструмент используется для запроса данных (пн goose, Knex, typeorm..et c)

ожидаемый результат результат из базы данных (выберите 1-е из статей)

{
  "name":"article1",
  "id":"1"
}

и вопрос в том, где лучше всего обрабатывать ответ из БД и переводить его в стандарт JSONAPI? это слой модели? Контроллер? просмотреть или добавить слой презентации?

Я думал о том, как реализовать это с помощью механизма шаблонов (pug, Handlebars..et c), но это хорошая идея? поскольку цель обработчика шаблонов - HTML, а не JSON?

, в случае, если целесообразно использовать обработчик шаблонов для рендеринга JSON, существует ли какой-либо доступный обработчик шаблонов JSON для генерации JSON?

Любой совет, руководство или хорошо написанный пример можно посмотреть?

Спасибо.

1 Ответ

2 голосов
/ 22 февраля 2020

Я сделал это в контроллерах моего приложения Nest JS, используя jsonapi-serializer . Я создал сервис для JSON API сериализации. Это казалось лучшим разделением проблем для меня. Контроллер получает данные от службы, затем вызывает службу сериализации и передает ответ вызывающей стороне.

...