如何使用Citrix ShareFile API进行搜索

时间:2014-04-03 19:15:53

标签: json api rest citrix

我正在为项目使用Sharefile REST API并遇到了问题。他们的文档很缺乏,到目前为止,我发给api @地址的5封电子邮件都没有得到答复。想我会把这个人群众包......

我需要做的是按名称搜索文件,并且还必须具有特定的parentID。我尽可能地遵循他们的文档,但我仍然在响应中得到500错误。

根据他们的API documentation,我必须发布到:https://account.sf-api.com/sf/v3/Items/AdvancedSimpleSearch,帖子如下:

{ 
    "Query":{ 
        "AuthID":"", 
        "ItemType":"", 
        "ParentID":"", 
        "CreatorID":"", 
        "LuceneQuery":"", 
        "SearchQuery":"", 
        "CreateStartDate":"", 
        "CreateEndDate":"", 
        "ItemNameOnly":"", 
    }, 
    "Paging":{ 
        "Key":"", 
        "PageNumber":1, 
        "PageSize":10, 
    }, 
    "Sort":{ 
        "SortBy":"", 
        "Ascending":false, 
    }, 
    "TimeoutInSeconds":10 
} 

我发送的JSON帖子如下:

{
    "Query": {
        "AuthID": "",
        "ItemType": "",
        "ParentID": "xxxxxxxxxxxx",
        "CreatorID": "",
        "LuceneQuery": "",
        "SearchQuery": "filename ='foo.png'",
        "CreateStartDate": "4/2/2014",
        "CreateEndDate": "4/4/2014",
        "ItemNameOnly": ""
    },
    "Paging": {
        "Key": "",
        "PageNumber": 1,
        "PageSize": 10
    },
    "Sort": {
        "SortBy": "",
            "Ascending": false
        },
    "TimeoutInSeconds": 10
}

他们在他们的示例帖子中预填了一些属性,所以我复制了。我也尝试只发送我需要的东西(而不是空白属性),但仍然得到500。

我可以上传文件,删除,修改等都没有问题,所以我确定它是这个JSON结构中的东西。我认为它归结为" SearchQuery"属性。他们的文档站点上没有示例,任何第三方的库只显示"查询"传入的参数没有看起来像什么的例子......

2 个答案:

答案 0 :(得分:0)

Try This:

    {
    "Query": {
        "AuthID": "",
        "ItemType": "",
        "ParentID": "xxxxxxxxxxxx",
        "CreatorID": "",
        "LuceneQuery": "",
        "SearchQuery": "foo.png",
        "CreateStartDate": "4/2/2014",
        "CreateEndDate": "4/4/2014",
        "ItemNameOnly": ""
    },
    "Paging": {
        "Key": "",
        "PageNumber": 1,
        "PageSize": 10
    },
    "Sort": {
        "SortBy": "",
            "Ascending": false
        },
    "TimeoutInSeconds": 10
}

In searchQuery we have to specify item name itself instead of filename='itemname'. Working for me :)

答案 1 :(得分:-1)

我一直在努力与之搏斗。我使用的是HTTPS API,而不是REST API,但也许相同的参数可以使用?我的客户端指定了PHP,因此查看Sharefile的PHP示例代码sharefile.php - 您将看到带有“$ query”参数的搜索功能。经过几次尝试后,我尝试提供这个论点:'{Name =“Agreements”}'。我想你可以推广到更复杂的搜索。 PHP示例代码执行http_build_query以将上面的内容转换为通常的HTML参数字符串。