使用SugarCRM中的JSON正文获取请求

时间:2018-06-13 14:13:15

标签: json http get sugarcrm

我正在使用SugarCRM rest API,并根据documentation来获取一组记录,我必须使用/<module> GET端点并在正文中传递JSON来过滤查询

首先,是否可以在GET请求中拥有正文?

那我怎么能建立这种要求呢?

我使用邮递员并尝试将参数作为查询字符串传递,但它无法实现。

1 个答案:

答案 0 :(得分:2)

据我所知,您必须将所有内容都放在查询字符串中,这可能与您期望的不同。

/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包含长度限制。请求参数。例如。如果我没记错的话,Apache 2的4096字节/字符。如果您必须发送非常复杂的请求,则可能需要使用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