首页 > 解决方案 > Mediawiki Hyperswitch:如果响应正文中的某个值等于变量,则返回

问题描述

我正在使用来自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. 我怎样才能做到这一点?

标签: javascriptrestmediawiki

解决方案


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 将其导出。


推荐阅读