MVC Web API Swagger Ekleme | C#

Merhaba, yazdığımız aPI’yi dışarıya verirken PDF, WORD vermek yerine daha şık bir dokümantasyon aracı var.
Ben kullanmamıştım şimdiye kadar.
Ama çok basit bir şekilde ayağa kaldırılıyormuş.
Öncelikle Nuget Manager’dan Swashbuckle paketini indiriyoruz. (5.6.0 vardı en son)
Yüklemeden sonra App_Start klasörü altına SwaggerConfig.cs dosyası eklendiğini göreceksiniz.
API projemizi sağ tıklayıp özelliklerini açıyoruz.
Start URL kısmına Swagger ekliyoruz.
Projeyi çalıştırınca arayüzün doğru bir şekilde açılması lazım.
“http error 403.14” hatası verirse yüksek ihtimalle portla ilgili bir sorun vardır.
Hem Project Url’de hem Start URL’de portu bir artırıp deneyebilirsiniz.
Doğru bir şekilde açıldıktan sonra benim iki ayara daha ihtiyacım oldu.
Bazı ApiController CLASS’ların listelenmesini istemedim.
Onları tepesine şunu ekleyerek onu çözdüm:

[ApiExplorerSettings(IgnoreApi = true)]

Bir de her istekte HEADER içerisinde bir token gönderiyordum.
Onu eklemek için de bir filtre sınıfı yazmak gerekiyormuş.

    public class AddSwagerRequiredHeaderParameter : IOperationFilter
    {
        public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
        {
            if (operation.parameters == null)
                operation.parameters = new List<Parameter>();

            operation.parameters.Add(new Parameter
            {
                name = "BenimToken",
                @in = "header",
                type = "string",
                required = true
            });
        }
    }

Daha sonra da bunu SwaggerConfig.cs sınıfında etkinleştirmek için aşağıdaki satırı açmak gerekiyor:

c.OperationFilter<AddSwagerRequiredHeaderParameter>();

Bütün işlemler bu kadar.

Selamlar.

Leave a Reply

Your email address will not be published. Required fields are marked *