SugarCRM API - 过滤POST相关模块字段

时间:2016-12-06 12:37:18

标签: sugarcrm

我正在尝试使用REST API检索记录列表及其相关模块字段之一。我们假设账户和机会。

因此,API Documentation (in the GET Filter)讨论了在fields参数中定义相关模块:

Sugar CRM GET Filter fields description

根据相同的文档,它将提供与以下类似的结果:

enter image description here

这正是我需要的,但我正在尝试使用POST方法实现这一目标。所以,按照相同的路径,我发送(使用Postman):

enter image description here

PS:我尝试了双引号的所有组合。逃跑,没有逃脱,有或没有它,所有这些都给我相同的结果,即:

enter image description here

消息在pt-BR中,但它表示“您的一个请求参数错误”。 HTTP状态代码为422 - Unprocessable Entity。

我做错了什么?我尝试了一切,只是不知道如何使它工作。看起来文档谈论的是一些根本不起作用或不存在的东西。

1 个答案:

答案 0 :(得分:3)

好的,经过一些研究后,似乎Postman使用的东西与Chrome类似,并且实际上不可能使用正文中的值发送GET请求。但是,你可以......

将值编码到URL中并通过Postman发送:

https://yoursite.com/rest/v10/Accounts?filter%5B0%5D%5Bopportunities.date_modified%5D%5B%24gte%5D%3D2016-02-29T00%3A00%3A00&fields=cpf_c,opportunities&max_num=10

使用curl:

curl -X GET -H Host:yoursite.com -H OAuth-Token:d49c8fd4-0ae0-d9fb-7ab8-5846e5a3fa86 -H Cache-Control:no-cache -d '{"filter":[{"opportunities.date_modified":{"$gte":"2016-02-29T00:00:00"}}],"fields":["cpf_c","opportunities"],"max_num":"10"}' https://yoursite.com/rest/v10/Accounts

或直接构建HTTP请求,并包含正文:

GET https://yoursite.com/rest/v10/Accounts HTTP/1.1
Host: yoursite.com
OAuth-Token:d49c8fd4-0ae0-d9fb-7ab8-5846e5a3fa86
Cache-Control:no-cache

{"filter":[{"opportunities.date_modified":{"$gte":"2016-02-29T00:00:00"}}],"fields":["cpf_c","opportunities"],"max_num":"10"}

为了测试这个,我创建了3个帐户,其中2个帐户已连接机会。当我使用“name”而不是“cpf_c”字段时,响应是这样的:

{
    "next_offset": -1,
    "records": [{
        "id": "64417139-459c-852f-3a73-5846ed1245c2",
        "name": "another account with opp",
        "date_modified": "2016-12-06T16:54:29+00:00",
        "opportunities": {
            "next_offset": -1,
            "records": [{
                "id": "32d1d320-c560-92d6-7def-5846eda786da",
                "date_modified": "2016-12-06T16:55:06+00:00",
                "_acl": {
                    "fields": {}
                },
                "_module": "Opportunities"
            }]
        },
        "_acl": {
            "fields": {}
        },
        "_module": "Accounts"
    }, {
        "id": "48dc47dd-bbf1-816d-b0ac-5846e6dd9e21",
        "name": "test with opp",
        "date_modified": "2016-12-06T16:23:33+00:00",
        "opportunities": {
            "next_offset": -1,
            "records": [{
                "id": "79c3bf6f-6c2b-7945-09f7-5846e6c610d7",
                "date_modified": "2016-12-06T16:24:20+00:00",
                "_acl": {
                    "fields": {}
                },
                "_module": "Opportunities"
            }]
        },
        "_acl": {
            "fields": {}
        },
        "_module": "Accounts"
    }]
}

希望这有帮助。