首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索TrueVault总是返回INVALID_SEARCH_QUERY

搜索TrueVault总是返回INVALID_SEARCH_QUERY
EN

Stack Overflow用户
提问于 2017-11-13 00:50:02
回答 2查看 191关注 0票数 1

仅使用必需字段的死简单搜索查询:

代码语言:javascript
复制
{ schema_id: 'xxxxxxxx-8b39-427a-8fb8-c764957fd9c6',
filter: { last_name: { type: 'not', value: 'Smith' } } }

POSTing到https://api.truevault.com/v1/vaults/xxxxxxxx-15e3-442e-aa6f-xxxxxxxx/search

当POSTing时,POST调用选项如下所示:

代码语言:javascript
复制
{ 
data: { search_option: 'xxxx base64 encoded JSON.stringify of the above xxxxxxx' },
headers: { Authorization: 'Basic xxx base64 encoded API KEY xxx' } 
}

授权生效了。结果:

{错误:失败400 {“错误”:{“代码”:"SEARCH.INVALID_SEARCH_QUERY",“消息”:“无效search_option。”,“键入”:"invalid_request_error“}, 结果:"transaction_id":"9ad83046-1906-406c-87ab-963b904857c4“}

同一个搜索查询的curl命令:

代码语言:javascript
复制
curl -d "{ search_option: 'eyJzY2hlbWFfaWQiOiJlOWVmYmE0NC04YjMwLTQyN2EtOGZiOC1jNzY0OTU3ZmMwZGUiLCJmaWx0ZXIiOnsibGFzdF9uYW1lIjp7InR5cGUiOiJ3aWxkY2FyZCIsInZhbHVlIjoiRnJhbnptZWllcioifX19' }" 
-X POST 
-H "Content-Type: application/json" 
-H "Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==" 
https://api.truevault.com/v1/vaults/xxxxxxxx-15e3-442e-aa6f-4xxxxxxxxxx/search

同样的错误:

代码语言:javascript
复制
{
    "error": {
        "code": "SEARCH.INVALID_SEARCH_QUERY",
        "message": "Invalid search_option.",
        "type": "invalid_request_error"
    },
    "result": "error",
    "transaction_id": "b5a51185-264f-4765-a1b8-6ae9e491aa39"
}
EN

回答 2

Stack Overflow用户

发布于 2017-11-17 00:27:40

亚历克斯

我不认为您的curl命令是按TrueVault预期的方式格式化的。这也可能是您在http库中遇到的问题。我期望的curl命令是:

代码语言:javascript
复制
curl https://api.truevault.com/v1/vaults/xyz/search \
 -XPOST \
 -H "Content..."
 -H "Auth..."
 -d "search_option=eyJ...."

也就是说,数据有效载荷是表单编码(param1=value1&param2=value2)而不是JSON。

看起来,用于搜索的文档缺少一个样例卷曲,但是您可以看到文档中列出的文档创建类似的curl。

票数 0
EN

Stack Overflow用户

发布于 2020-09-18 19:04:01

我在我的juery ajax请求中遇到了同样的问题。对我来说,是我用header{'Content-Type':'application/json'}发送请求,但它需要是表单数据。

工作实例:

代码语言:javascript
复制
var api_url = 'https://api.truevault.com/v1/vaults/' + vault_id + '/search';
var data = {
        'schema_id'    : schema_id,
        'page'         : 1,
        'per_page'     : 50,
        'filter_type'  : 'and',
        'full_document' : false,
        "sort": [
            {
                "SomeField":"asc"
            }
        ],
        'filter':{
            'SomeField':{
                'type':'eq',
                'value': somevalue
            }
        }
    };
data = btoa( JSON.stringify( data )  );

$.ajax({
    type     : 'POST',
    url      : api_url,
    dataType : 'json',
    processData : false,
    headers : {
        'Authorization':'Basic '+ btoa( auth_key+":" ),
    },
    mimeType : "multipart/form-data",
    data : 'search_option='+ data,
    error: function( response ) {
        //
    },
    success: function( response ) {
        //
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47255680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档