Swagger Nedir ?
Swagger, yazılım geliştiricilerin RESTful Web servislerini kolayca çalıştırılıp kullanılmasına olanak sağlayan açık kaynaklı bir araçtır.

Swagger Nasıl Kullanılır ?
Swagger ile ilgili kurulum ve kullanımı hakkında kısa bilgi vereceğim sonrasında bir kaç örnek ile detaylandıracağım.
NuGet Paketleri ile kurulum
Paket Manager Console
Install-Package Swashbuckle -Pre
Project.json dosyası ile kurulum
“Swashbuckle”: “6.0.0-beta902”
Middleware yapılandırması
public void ConfigureServices(IServiceCollection services)
{
//Framework servislerini ekleyiniz.
services.AddMvc();
//Loglama servislerini ekleyiniz.
services.AddLogging();
// Add our repository type
services.AddSingleton<IEFRepository,EFRepository>();
//Servislere swaggeri ekleyiniz. Kullanmka istediginizde ISwaggerProvider servisini inject ederek kullanınız.
services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new Info { Title = "Baslık", Version = "v1" });
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", " Servis baslık");
});
}
Örneklere başlamadan önce karşılaştığım bir hata hakkında bilgi vermek istiyorum. Projenizde area(admin) alanı var ise orada API değilde normal kontroller kullanıyorsanız swagger oluşturulurken şema hatası verecektir.Bu hatanını çözümünü o kontrolleri ignore ederek çözebilirsiniz. Yapmanız gereken aşağıdaki kod satırınız kontroller sayfanızın başına ekleyiniz.
[ApiExplorerSettings(IgnoreApi = true)]
Swagger Örnek Kullanımı
Middleware yapılandırılmasından sonra bir tane örnek yapacağım.Web API ile bir tablodaki verileri listeleme ve parametre ile getbyId methodlarını kullanacagım.Örnek kod bloğu aşağıdadır.
[Route("api/[controller]")]
[ApiController]
public class SwaggerController : Controller
{
private readonly IAppLoggerService _appLoggerService;
public SwaggerController(IAppLoggerService appLoggerService)
{
_appLoggerService = appLoggerService;
}
[HttpGet("[action]")]
public IList<AppLogger> GellAllLogs() {
return _appLoggerService.GetAll();
}
[HttpGet("[action]")]
public AppLogger GetById(int Id)
{
return _appLoggerService.GetById(Id);
}
}
