Попробовать HttpBuilder-NG - заменить старый HttpBuilder или wslite

Я пытаюсь переключиться на HttpBuilder-NG, но у меня возникли некоторые трудности с этим. Я не могу найти какие-либо конкретные примеры работы с заголовками ответов или даже кодом состояния ответа. Это было не просто со старым httpbuilder - RESTClient, чтобы быть конкретным. Также я использую его для тестирования. Вот один пример, который мне нужно перевести на HttpBuilder-NG

def r = client.get(path: '/ws/v1/ping')
assert r.status == 200

как это выглядит в HttpBuilder-NG?


Ваш комментарий поставил меня на правильный путь. Спасибо! Я надеюсь избежать перезаписи тысяч строк тестового кода, создав класс-оболочку вокруг HttpBuilder-NG, чтобы он возвращал объекты, подобные старому HttpBuilder/RESTClient. Кроме того, нечто подобное может помочь людям, которые пытаются уйти от wslite. Вот что я придумала до сих пор, на случай, если это будет полезно для других людей:

def client = HttpBuilder.configure {
             request.uri = 'https://myServer.server.org'
             request.auth.basic 'user1', 'fakePass1'
             ignoreSslIssues execution
             }
//use the client to make hit the ping endpoint
def r = client.get {
             request.uri.path = path+'ping'
             response.success {FromServer fs, body ->
                        [status: fs.statusCode,
                         headers: fs.headers,
                         data: body
                        ]
             }
        }
assert r.status == 200
assert r.headers.size() > 0
assert r.data[0] == 'pong'

1 ответ

Решение

Существует довольно хорошее руководство пользователя со множеством примеров.

Ваш пример может быть сделан несколькими способами, одним из которых будет:

HttpBuilder.configure { 
    request.uri = '<YOUR_SERVER>'
}.get {
    request.uri.path = '/ws/v1/ping'
    response.when(200){
        // ...
    }
}

Смотрите JavaDocs для более подробной информации о классах и методах, на которые ссылаются.

Другие вопросы по тегам