TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.75K subscribers
Post #2668 2.69K
День 2211. #ЧтоНовенького
Обновления 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/
  • 👍 4
More from @netdeveloperdiary
  1. Oct 5, 2026День 2805. #ЧтоНовенького #NET11 Аргументы в Выражениях Коллекций в C#15 В C#15 реализован…
  2. Oct 4, 2026День 2804. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
  3. Oct 3, 2026Post #3360
  4. Oct 3, 2026День 2803. #Оффтоп Чем Заняться, Пока Работают Агенты? У VS Code Есть Ответ Сейчас большую…
  5. Oct 2, 2026День 2802. #Карьера #Юмор Секреты Программирования, Известные Только Легендам Ещё один пос…
  6. Oct 1, 2026Post #3357
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →