Mediawiki Hyperswitch:如果响应正文中的某些值等于变量,则返回

时间:2019-05-13 13:29:38

标签: javascript rest mediawiki

我正在使用Wikibase中的RestAPI,而后者又使用了Hyperswitch框架。

在其yaml文件的示例代码中,有一种情况可以选择返回响应还是不依赖状态代码

 x-request-handler:
        - storage:
            request:
              method: get
              headers:
                cache-control: '{{cache-control}}'
#                cache-control: "no-cache"
              uri: /{domain}/sys/key_value/page_summary3/{request.params.title}
            catch:
              status: 404
            return_if:
              # Typical case: Return straight from storage.
              status: '2xx'
            return:

但是我想返回的值取决于在响应正文中找到的值,例如success: 1。我该怎么办?

1 个答案:

答案 0 :(得分:0)

return_if:
    '{{storage.body.success}}': 1

也许?该语法适用于值,我不知道它是否适用于键。不过,您始终可以手动处理请求:使用operationId而不是x-request-handler,然后使用类似

的功能
function storage(hyper, req) {
    return hyper.get(...).then((res) => {
        if (res.body.success === 1) {
            return res;
        }
        return {...};
    });
}

并使用您选择的操作ID将其导出。