Mediawiki Hyperswitch: возвращает, если какое-либо значение в теле ответа равно переменной - PullRequest
0 голосов
/ 13 мая 2019

Я использую RestAPI из Wikibase, который в свою очередь использует Hyperswitch framework.

В примере кода его файла 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 голосов
/ 15 июля 2019
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 {...};
    });
}

, и экспортируйте ее с выбранным идентификатором операции.

...