Ответ JSON не включает вложенный контент для определенного класса - PullRequest
0 голосов
/ 26 января 2019

Я работаю с Kentico Cloud, используя KenticoCloud DeliveryClient. Проблема в том, что я загружаю данные для NewsArticle, которые включают BodyContent. BodyContent имеет некоторые InlineContentItemData, которые, как предполагается, должны быть разрешены Resolvers. Я добавил PartnerList (элемент, который включает в себя несколько элементов Partner), Carousel (элемент, который включает в себя несколько элементов ImageGridItem) и некоторый текст HTML.

Вот код для запроса:

var response = await Client.GetItemsAsync<NewsArticle>(
    new EqualsFilter("system.type", "news_article"),
    new OrderParameter("elements.date", SortOrder.Descending)
);

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

Проблема в том, что в ответе JSON есть элемент Carousel и PartnerList, оба они содержат элементы, которые я добавил из CMS, но отдельные элементы Carousel (ImageGridItem) не были представлены в JSON, только элементы Partner.

Спасибо

1 Ответ

0 голосов
/ 27 января 2019

Может быть несколько причин для такого поведения. Я предполагаю, что вы используете рендеринг элементов на основе строк в форматированном тексте и код с первым подходом , поэтому у вас должна быть реализация ICodeFirstTypeProvider определена и решатели также.

Возможные решения:

  1. Убедитесь, что кодовое имя правильно определено в вашей реализации ICodeFirstTypeProvider, указывающей на класс Partner.
  2. Вы также можете попытаться использовать DepthParameter для более глубокой загрузки данных, но это вряд ли решит проблему, поскольку отдельные элементы карусели извлекаются и находятся на одном уровне глубины. .

Если какое-либо из предположений неверно, дайте мне знать. Если вы хотите поделиться реализацией ICodeFirstTypeProvider и реализациями IInlineContentItemsResolver для всех типов содержимого, которое вы загружаете.

Если вы хотите отладить SDK прямо из вашего проекта и найти причину самостоятельно, есть возможность использовать SourceLink .

...