یکی از امکاناتی که Visual Studio 2022 به ما میدهد، یک REST CLIENT 1 است که با آن میتوانیم بدون Swagger، Post Man یا ابزارهای مشابه، Apiهای خود را تست کنیم.
برای استفاده از آن، ابتدا یک پروژهی Api را داخل 1 1 با تنظیمات پیشفرض آن ایجاد میکنیم که شامل یک Controller به نام WeatherForecast است. سپس یک پوشه را درون آن با نامی دلخواه ایجاد میکنیم و داخل آن، یک فایل جدید را با پسوند http میسازیم.
سپس این فایل http را باز میکنیم. اگر شروع به تایپ کردن کنیم، میتوانیم ببینیم که intellisense به ما http methodهای مختلف را نشان میدهد و میتوانیم از آنها استفاده کنیم. برای مثال یک درخواست Get را ایجاد میکنم:
GET https://localhost:7092/WeatherForecast
حال پروژه را اجرا میکنیم و بر روی فلش سبز رنگی که کنار درخواست ایجاد شده، کلیک میکنیم تا درخواست اجرا شود:
در اینجا میتوانیم تعدادی متغیر را نیز تعریف کرده و از آنها استفاده کنیم:
@hostname = localhost
@port = 7092
@host = {{hostname}}:{{port}}
GET https://{{host}}/WeatherForecast
حال میخواهیم یک درخواست Post را ایجاد و ارسال کنیم. برای این منظور ابتدا داخل کنترلر WeatherForecast، یک اکشن متد Post را ایجاد میکنیم که در این مثال کاری با دیتای وارد شده نمیکند و فقط آنرا بازگشت میدهد:
[HttpPost]
public ActionResult Post(WeatherForecast weatherForecast)
{
//Code ...
return Ok(weatherForecast);
}
اکنون میتوانیم مانند زیر یک درخواست Post را با بدنهی json ایجاد کنیم:
@hostname = localhost
@port = 7092
@host = {{hostname}}:{{port}}
@contentType = application/json
POST https://{{host}}/WeatherForecast
Content-Type:{{contentType}}
{
"date": "2023-03-29",
"temperatureC": 30,
"summary": "Hot"
} نکته: حتما به فاصلهی بین Content-Type و براکتهای بدنهی درخواست، دقت کنید.
به این مورد دقت داشته باشید که برای داشتن چند درخواست در یک فایل، برای جدا کردن آنها از هم باید از ### استفاده کنید:
@hostname = localhost
@port = 7092
@host = {{hostname}}:{{port}}
@contentType = application/json
GET https://{{host}}/WeatherForecast
###
POST https://{{host}}/WeatherForecast
Content-Type:{{contentType}}
{
"date": "2023-03-29",
"temperatureC": 30,
"summary": "Hot"
}
برچسب:
نویسنده: دانلودی
تاريخ: سه
شنبه
22 فروردين
1402 ساعت: 22:37