ПОЛУЧИТЬ запрос с телом JSON в SugarCRM - PullRequest
0 голосов
/ 13 июня 2018

Я использую SugarCRM rest API, и в соответствии с документацией , чтобы получить набор записей, мне нужно использовать /<module> GET конечную точку и передать JSON в теле для фильтрации запроса.

Во-первых, возможно ли даже иметь тело в GET-запросе?

и как я могу тогда создать такой запрос?

Я использую почтальон и пытался передать параметры в виде строк запроса, но это невозможно.

1 Ответ

0 голосов
/ 13 июня 2018

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

Пример запроса к /Users:

{
    max_num: 100,
    fields: ["first_name", "last_name"],
    filter: [
        {"user_name":"admin"}
        {"status":"Active"}
    ]
}

В виде строки запроса этот запрос будет выглядеть следующим образом:

/rest/v10/Users?max_num=100&fields=first_name,last_name&filter[0][user_name]=admin&filter[1][status]=Active

Замечания относительно формата строки запроса:

  • Нет { или }, значения объекта запроса размещаются непосредственно в строке запроса
  • Пары ключ-значение присваиваются = и разделяются & (вместо : и ,)
  • Кавычек " или ' нет вообще, строки пишутся без них
  • Массив значений (здесь: fields) - это всего лишь одно присваивание свсе значения разделены ,
  • Массив объектов (здесь: filter) имеет одну пару ключ-значение на нижнее значение и использует [ и ] для указания «пути» к каждомузначение.Использование числовых индексов на основе 0 для массивов

Примечания

  • Имейте в виду, что существуют ограничения по длине URL, вкл.Строка запроса.Например, 4096 байт / символов для Apache 2, если я правильно помню.Если вам нужно отправить очень сложные запросы, вы можете использовать POST /rest/v10/<module>/filter.
  • URL-экранированный (обычно не обязательный), пример фильтра будет выглядеть так: /rest/v10/Users?max_num%3D100%26fields%3Dfirst_name%2Clast_name%26filter%5B0%5D%5Buser_name%5D%3Dadmin%26filter%5B1%5D%5Bstatus%5D%3DActive
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...