Обновления HTTP-файлов в Visual Studio. Начало
Несколько новых функций были добавлены в Visual Studio 2022 17.12+ для работы с HTTP-файлами.
Переменные запроса
При работе с API часто требуется получить значение из конечной точки, а затем использовать его в последующем запросе. Это можно сделать с помощью переменных запроса. Один из наиболее распространённых сценариев: вызвать конечную точку для аутентификации в API и получить обратно токен, который можно использовать для будущих запросов. Запрос ниже относится к примеру приложения TodoApi Дэвида Фаулера. API имеет конечную точку, где вы можете создать нового пользователя, указав имя пользователя и пароль. Это конечная точка, к которой мы делаем запрос:
@username = bloguser
# войти и сохранить ответ как "login"
# @name login
POST {{TodoApi_HostAddress}}/users/token
Content-Type: application/json
{
"username": "{{username}}",
"password": "{{password}}"
}
###
В этом случае имя пользователя определено в HTTP-файле, а пароль хранится безопасно с использованием переменных среды (о них в следующем посте). В запрос к конечной точке /users/token мы передаём имя пользователя и пароль как часть тела HTTP-запроса. Переменная запроса обозначена сразу над запросом в виде комментария:
# @name login
После отправки этого запроса в Visual Studio вы можете получить значение из ответа или запроса. В коде ниже мы используем переменную запроса login для извлечения полученного токена и создания элемента TODO, используя авторизацию. Также мы сохраняем ответ в переменную запроса todo1:
# Создать элемент TODO
# @name todo1
POST {{TodoApi_HostAddress}}/todos
Authorization: Bearer {{login.response.body.$.token}}
Content-Type: application/json
{
"title": "Write blog post"
}
###
Рассмотрим синтаксис подробнее:
{{login.response.body.$.token}}
<имяПеременной>
– имя переменной запроса (в нашем примере - login);response
|request
– извлекаем значение из ответа или из запроса;body
|headers
– извлекаем значение из тела или заголовков ответа/запроса;*
|JSONPath
|XPath
|Header
– выражение для извлечения результата:-
*
- всё тело (кроме случаев извлечения из Header),-
JSONPath
– путь к переменной в JSON (.$.…
),-
XPath
– путь к переменной в XML (./.…
).В примере выше мы извлекаем переменную token из корня JSON ответа (
body.$.token
).Окончание следует…
Источник: https://devblogs.microsoft.com/visualstudio/http-file-updates-for-request-variables-and-more/