.Net Core Swagger Kullanımı

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);
        }

    }

“.Net Core Swagger Kullanımı” için bir yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir