Я собираюсь исследовать проблему позже сегодня, однако, по вашему описанию, она может быть вызвана задержкой готовности элемента API доставки - проект еще не был полностью синхронизирован с API доставки.После публикации / отмены публикации элемента или создания / создания проекта может возникнуть небольшая задержка в обработке сообщений с помощью API доставки, что может привести к недоступности элемента.Эта задержка может быть переменной - по моему опыту, она может варьироваться от пары секунд до 2-3 минут.Тем не менее, я собираюсь проверить это, чтобы быть уверенным.Я буду держать вас в курсе.
Редактировать: Я почти уверен, что проект не был синхронизирован и обработан в API доставки на момент запроса элементов.API возвратил 200 , в результате чего isSuccess в обратном вызове было true , однако, возможно, не было ни одного или только подмножество доступных элементов - I 'Мы воспроизвели это поведение (снимок экрана ниже), хотя оно разработано специально (контент / сообщения в Event Hub должны обрабатываться асинхронно).
Я также предложил усовершенствование документации Kentico Cloud, чтобы упомянуть / объяснить возможную задержку, вызванную обработкой сообщений очереди событий из концентраторов событий .
Просто чтобы быть уверенным - не могли бы вы повторить это с вашим getArticles
пользовательским запросом?
Edit2: Назад к вашемувопрос по поводу ObjectMapper
.Это не ошибка, а просто сообщение отладки, однако в сообщении отладки должно быть не nil
, а 0
(ноль).Сообщение пришло от:
private func sendGetItemsRequest<T>(url: String, completionHandler: @escaping (Bool, ItemsResponse<T>?, Error?) -> ()) where T: Mappable {
sessionManager.request(url, headers: self.headers).responseObject { (response: DataResponse<ItemsResponse<T>>) in
switch response.result {
case .success:
if let value = response.result.value {
let deliveryItems = value
if self.isDebugLoggingEnabled {
print("[Kentico Cloud] Getting items action has succeeded. Received \(String(describing: deliveryItems.items?.count)) items.")
}
completionHandler(true, deliveryItems, nil)
}
case .failure(let error):
if self.isDebugLoggingEnabled {
print("[Kentico Cloud] Getting items action has failed. Check requested URL: \(url)")
}
completionHandler(false, nil, error)
}
}
}