XERO api — Фильтровать предоплаты по идентификатору контакта

#xero-api

#xero-api

Вопрос:

Привет, мне нужно получить данные о предоплатах, произведенных конкретному поставщику (с идентификатором контакта aa941766-b505-4c0d-ae61-16ee78ec995e) в пределах заданного диапазона дат

 GET https://api.xero.com/api.xro/2.0/Prepayments
  

параметры запроса

где = Дата >= DateTime (2019, 01, 02) amp;amp; Date < DateTime (2019, 03, 12) amp;amp; ContactID = «aa941766-b505-4c0d-ae61-16ee78ec995e»

Я тестирую в rest клиенте. Результирующий запрос GET

 https://api.xero.com/api.xro/2.0/Prepayments?where=Date >= DateTime(2019, 01, 02) && Date < DateTime(2019, 03, 12) && ContactID = "aa941766-b505-4c0d-ae61-16ee78ec995e"
  

Но получаю этот ответ с ошибкой 400

{ «Номер ошибки»: 16, «Тип»: «Исключение QueryParseException», «Сообщение»: «В типе «BankTransaction»не существует свойства или поля ‘ContactID'»}

Ответ №1:

Вам нужно будет следовать структуре объекта, который вы ожидаете увидеть в ответе: свойство ContactID находится в элементе Contact предоплаты, поэтому, возможно, попробуйте Contact.ContactID вместо просто ContactID.

Вам также необходимо проанализировать идентификатор ContactID guid для использования в предложении where, например, так:

 Contact.ContactID==Guid("aa941766-b505-4c0d-ae61-16ee78ec995e")
  

Комментарии:

1. Я пробовал это и множество вложений, похожих на это, но ни одно из них не сработало.

2. Обновлено с помощью примера синтаксического анализа guid — помогает ли это @Viney?

3. Большое спасибо за ваши усилия.