TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 550 subscribers
Post #615 190
ءSwagger در NET 10. حذف شده؟ چطور دوباره اضافه‌اش کنیم 🔍

شما یک پروژه‌ی NET 10. می‌سازید، برنامه را اجرا می‌کنید، تلاش می‌کنید صفحه‌ی Swagger را باز کنید، و با خطای 404 Not Found مواجه می‌شوید. ❌
پس چطور باید آن را برگردانیم؟

چرا Swagger حذف شده است؟ 🤔

مایکروسافت پشتیبانی از Swagger را از NET 9. حذف کرده است. طبق این بحث در GitHub:
"The project is no longer actively maintained by its community owner. Issues have not been addressed or resolved..."

یعنی:
این پروژه دیگر به‌صورت فعال توسط مالک جامعه‌ی آن نگهداری نمی‌شود. مشکلات بررسی یا حل نشده‌اند.

مایکروسافت به سمت استفاده از OpenAPI حرکت کرده است، یعنی حالا مستندات OpenAPI می‌توانند بدون نیاز به Swagger تولید شوند. 📄

چطور Swagger را به NET 10. اضافه کنیم 🛠

ابتدا باید پکیج زیر را به پروژه‌ی Web API خود اضافه کنید:
Swashbuckle.AspNetCore.SwaggerUI

سپس داخل فایل Program.cs باید پارامتر options را به متد UseSwaggerUI اضافه کنید و endpoint را روی /openapi/v1.json تنظیم کنید.
// Program.cs
if (app.Environment.IsDevelopment())
{
app.MapOpenApi();

// Add this
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/openapi/v1.json", "API v1");
});
}


اجرای خودکار Swagger هنگام اجرا 🚀

اگر می‌خواهید برنامه هنگام اجرا به‌صورت خودکار با Swagger باز شود، به مسیر زیر بروید:
Properties > launchSettings.json

پروفایل https را پیدا کنید، مقدار launchBrowser را برابر true قرار دهید و launchUrl را روی swagger تنظیم کنید.
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": false,
"applicationUrl": "http://localhost:5155",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:7284;http://localhost:5155",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}


جایگزین‌های Swagger 🔄

ءSwagger دوباره اضافه شده، اما آیا جایگزین‌های بهتری وجود دارند؟
Scalar ✨

ءScalar یک جایگزین برای Swagger است. این ابزار به شما اجازه می‌دهد endpointها را با یک رابط کاربری متفاوت تست کنید.

برای اضافه کردن Scalar، پکیج Scalar.AspNetCore را در پروژه‌ی Web API خود نصب کنید.

سپس، در فایل Program.cs، فضای نام Scalar.AspNetCore را import کنید و کد زیر را اضافه کنید:
// Program.cs
using Scalar.AspNetCore; // <-- Import this namespace

...

if (app.Environment.IsDevelopment())
{
app.MapOpenApi();
app.MapScalarApiReference(); // <-- Add this line
}

برای اجرای برنامه همراه با Scalar، فایل launchSettings.json را باز کنید.

مقدار launchBrowser را روی true بگذارید و launchUrl را برابر scalar/v1 تنظیم کنید.
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": false,
"applicationUrl": "http://localhost:5155",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "scalar/v1",
"applicationUrl": "https://localhost:7284;http://localhost:5155",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

همچنین می‌توانید تنظیمات Scalar را شخصی‌سازی کنید. در این مثال، عنوان روی "My API" تنظیم شده، تم برابر با ScalarTheme.Mars است و نوار کناری مخفی شده است.
// Program.cs
if (app.Environment.IsDevelopment())
{
app.MapOpenApi();
app.MapScalarApiReference(options =>
{
options.WithTitle("My API");
options.WithTheme(ScalarTheme.Mars);
options.HideSidebar();
});
}
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
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 →