Swagger, RESTful tarzı web servislerini oluşturmak, tanımlamak, çağırmak ve görselleştirmek için belirleyici ve eksiksiz bir çerçevedir.
Genel hedef, istemci ve dosya sisteminin sunucu ile aynı hızda güncellenmesi. Dosyanın yöntemleri, parametreleri ve modelleri sunucu tarafı koduna sıkı bir şekilde entegre edilmiştir; böylece API'ler her zaman senkronize kalabilir. Swagger, güçlü API'leri dağıtmayı ve kullanmayı hiç kolaylaştırmadı.
eleştiri
Öncelikle, Core 3.1 ASP.NET yeni bir proje oluşturun ve nuget kullanarak Swashbuckle.AspNetCore paketini aşağıdaki komutla yükleyin:
startup.cs dosyasında Swagger servisini şu şekilde yapılandırın:
ConfigureServices yöntemi
Yöntemi yapılandırma
Aşağıdaki kodla yeni bir Test kontrolcüsü oluşturun:
Test Denetleyicisi Arayüz Oluştur Ürün parametre model nesnesi aşağıdaki gibidir:
Projeye başladıktan sonra erişim:http://localhost:18979/swagger/index.html, aşağıdaki şekilde gösterildiği gibi:
swagger.json İçerik şöyledir:
{ "openapi": "3.0.1", "bilgi": { "title": "Benim API'm", "Versiyon": "v1" }, "Paths": { "/api/Test/Yarat": { "post": { "etiketler": [ "Test" ], "requestBody": { "içerik": { "application/json": { "şema": { "$ref": "#/bileşenler/şemalar/Ürün" } }, "text/json": { "şema": { "$ref": "#/bileşenler/şemalar/Ürün" } }, "application/*+json": { "şema": { "$ref": "#/bileşenler/şemalar/Ürün" } } } }, "yanıtlar": { "200": { "açıklama": "Başarı", "içerik": { "metin/sade": { "şema": { "type": "string" } }, "application/json": { "şema": { "type": "string" } }, "text/json": { "şema": { "type": "string" } } } } } } } }, "bileşenler": { "şemalar": { "Bilgi": { "type": "object", "özellikler": { "isDiscount": { "type": "boolean" }, "isVip": { "type": "boolean", "nullable": doğru } }, "additionalProperties": yanlış }, "Ürün": { "type": "object", "özellikler": { "isim": { "type": "ip", "nullable": doğru }, "engelli": { "type": "boolean" }, "bilgi": { "$ref": "#/components/şemalar/Bilgi" } }, "additionalProperties": yanlış } } }
}
Hem Boolean tiplerin hem de nullable Boolean tiplerin varsayılan olarak şu olduğunu bulduk: doğru,Günlük geliştirmede, bool atanmadıysa, varsayılan yanlış olmalı ve null tip varsayılan olarak null olmalıdır, parametreler fark edilmezse, commit simüle etmek için swagger kullanmaya çalışırız,Kazalar genellikle。 (Geçen hafta, bir bool parametresinin varsayılan olarak doğru olduğunu simüle etmek için swagger kullandım ve WeChat mesajları tüm kişilere gönderildi.)
Varsayılan olarak yanlış bir Boolean tipini nasıl atayabilirim? Ya null tiplere null atanıyor mı?
ISchemaFilter'den miras alan yeni bir sınıf oluşturun ve kod şu şekildedir:
Ve swagger servisini eklerken, AddSwaggerGen filtresini aşağıdaki gibi ekleyin:
Bazı özel bool alanları için varsayılan değerin doğru olarak ayarlanması gerekir ve eklenebilir[DefaultValue(doğru)]Özellikler şunlardır:
{ "isim": "ip", "engelli": doğru, "bilgi": { "isDiscount": yanlış, "isVip": null }
} swagger.json Dosya şöyledir:
{ "openapi": "3.0.1", "bilgi": { "title": "Benim API'm", "Versiyon": "v1" }, "Paths": { "/api/Test/Yarat": { "post": { "etiketler": [ "Test" ], "requestBody": { "içerik": { "application/json": { "şema": { "$ref": "#/bileşenler/şemalar/Ürün" } }, "text/json": { "şema": { "$ref": "#/bileşenler/şemalar/Ürün" } }, "application/*+json": { "şema": { "$ref": "#/bileşenler/şemalar/Ürün" } } } }, "yanıtlar": { "200": { "açıklama": "Başarı", "içerik": { "metin/sade": { "şema": { "type": "string" } }, "application/json": { "şema": { "type": "string" } }, "text/json": { "şema": { "type": "string" } } } } } } } }, "bileşenler": { "şemalar": { "Bilgi": { "type": "object", "özellikler": { "isDiscount": { "type": "boolean", "default": yanlış }, "isVip": { "type": "boolean", "default": null, "nullable": doğru } }, "additionalProperties": yanlış }, "Ürün": { "type": "object", "özellikler": { "isim": { "type": "ip", "nullable": doğru }, "engelli": { "type": "boolean", "default": doğru }, "bilgi": { "$ref": "#/components/şemalar/Bilgi" } }, "additionalProperties": yanlış } } }
} (Son)
|