Как доставить вложенный массив JSON для ссылки на контент с отображением экспорта?

Я создал тип содержимого продукта, содержащий ссылку на статью (один продукт для многих статей). Затем я добавил поле «Content: ID» «Content: Title» и «(field_article: Content) Content: Title» в новый вид экспорта REST. "(field_article: Content) Содержимое: заголовок" from from relationship "Содержимое, на которое ссылается field_article" Я добавил в расширенный. «введите Выход:

[
    {
        "nid":"3",
        "title":"Product1 title",
        "article_title":"Article1 title"
    },
    {
        "nid":"3",
        "title":"Product1 title",
        "article_title":"Article2 title"
    }
]

То, что я хотел бы достичь, выглядит примерно так:

[
    {
        "nid":"3",
        "title":"Product1 title",
        "articles":
            [
                {
                    "title":"Article1 title"
                },
                {
                    "title":"Article2 title"
                }
            ]           
    }
]

Как это реализовать?

ОБНОВЛЕНО: Я также попробовал агрегирование, но в случае экспорта REST View в качестве формата Serializer нет опции «group by» в настройках формата, но hal_json, json и xml, тогда как «Настройки агрегирования» отображаются на каждой поданной. В этом случае я не знаю, как установить группу «настройки агрегации» по идентификатору узла. Кроме того, я не могу найти документ об установках агрегации поля в разделе «Поля».

 введите описание изображения здесь>> </a> </p></body></html>

6 голосов | спросил jack zhou 21 Mayam16 2016, 11:08:53

3 ответа


2

Я создал очень простой модуль REST Export Nested для поддержки вложенного JSON с использованием Представления Полевые виды .

После установки «REST Export Nested»:

  1. Установите и включите Поле просмотров Просмотров

  2. Создайте отображение отображения ссылочного контента (Статьи в вашем случае) типа «Экспорт REST» или «Вложенный экспорт REST»

  3. Добавить связь с родительским объектом и контекстным фильтром родительского идентификатора объекта
  4. Создать представление представления родительского объекта типа «Экспорт REST вложенный "
  5. Добавьте обязательные поля (например, «nid», «title»)
  6. Добавить поле типа «Поле поиска» (например, «статьи»), настроить с помощью правильный просмотр и отображение и передача «nid» в качестве контекстного фильтра

Модуль не зависит от вида поля представления и может работать с другими полями, которые создают строку JSON.

ответил imclean 17 AMpMon, 17 Apr 2017 01:52:54 +030052Monday 2017, 01:52:54
1

Если вы не хотите писать свой собственный REST api-плагин, вы можете попробовать использовать jsonapi , который использует спецификацию jsonapi.org .

Jsonapi предоставляет коллекции полей по умолчанию.

ответил TheodorosPloumis 8 Jam1000000amSun, 08 Jan 2017 06:03:43 +030017 2017, 06:03:43
0

Как ответил здесь , вы можете создать свой собственный плагин serializer как описано здесь => API REST через представления в Drupal 8 - как изменить сериализатор

Это довольно легко расширить, и вы можете добиться того, что вы пытаетесь сделать.

ответил pbonnefoi 18 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 18 Sep 2017 19:17:40 +0300 2017, 19:17:40

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132