我正在使用 SugarCRM rest API,并且根据 documentation , 要获得一组记录,我必须使用 /<module> GET
端点并在正文中传递 JSON 以过滤查询。
首先,是否有可能在 GET 请求中包含主体?
然后我该如何构建这种请求?
我正在使用 postman 并尝试将参数作为查询字符串传递,但这是不可能的。
最佳答案
据我所知,您必须将所有内容都放入查询字符串中,这可能与您预期的有所不同。
请求示例 /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
关于json - 在 SugarCRM 中使用 JSON 正文获取请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50839416/