0Pricing
C# Academy · Ders

Sürümlenmiş API'leri Belgeleme

Birden çok API sürümü için belgeleri kullanıma açın.

Sürümlenmiş API'leri Belgeleme, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.

Sürüm Başına Bir Belge

Bir API'nin birden çok sürümü olduğunda, genellikle her sürüm için ayrı bir OpenAPI belgesi istersiniz; böylece tüketiciler yalnızca kendileriyle ilgili uç noktaları görür.

// /openapi/v1.json -> only v1 endpoints
// /openapi/v2.json -> only v2 endpoints

API Sürüm Açıklaması Sağlayıcısı

Asp.Versioning, keşfedilen tüm API sürümlerini listeleyen IApiVersionDescriptionProvider özelliğini sunar. Her sürüm için bir belge kaydetmek üzere bu listede döngü yaparsınız.

var provider = app.Services
    .GetRequiredService<IApiVersionDescriptionProvider>();

foreach (var desc in provider.ApiVersionDescriptions)
{
    // desc.GroupName is e.g. "v1", "v2"
}

Her Sürüm İçin Belge Kaydetme

Her sürüm grubu için AddOpenApi çağrısı yapın ve her belgeyi grubun adını kullanarak adlandırın.

builder.Services
    .AddApiVersioning()
    .AddApiExplorer(o =>
    {
        o.GroupNameFormat = "'v'VVV";
        o.SubstituteApiVersionInUrl = true;
    });

builder.Services.AddOpenApi("v1");
builder.Services.AddOpenApi("v2");

Uç Noktaları Doğru Belgeye Filtreleme

Her belgenin yalnızca kendi sürümüne ait ve grup adıyla eşleşen uç noktaları içermesi için bir belge dönüştürücüsü veya ShouldInclude koşulunu kullanın.

builder.Services.AddOpenApi("v1", options =>
{
    options.ShouldInclude = description =>
        description.GroupName == "v1";
});

Belgeleri Eşleme

Varsayılan kalıpla kullanılan MapOpenApi, adlandırılmış her belgeyi /openapi/{documentName}.json adresinde sunar.

app.MapOpenApi();
// /openapi/v1.json and /openapi/v2.json both available

Belgeye Özel Bilgileri Ayarlama

Belgelerin kendilerini açıklayabilmesi için her sürüm belgesine bir dönüştürücüyle kendine ait bir başlık ve sürüm verin.

builder.Services.AddOpenApi("v2", options =>
{
    options.AddDocumentTransformer((doc, ctx, ct) =>
    {
        doc.Info.Title = "Catalog API v2";
        doc.Info.Version = "2.0";
        return Task.CompletedTask;
    });
});

Kullanımdan Kaldırılan Sürümleri Belgelerde İşaretleme

Bir sürüm kullanımdan kaldırılmışsa tüketicilerin uyarıyı arayüzde görmesi için bu durumu belge açıklamasında belirtin.

options.AddDocumentTransformer((doc, ctx, ct) =>
{
    if (ctx.DocumentName == "v1")
        doc.Info.Description = "DEPRECATED - migrate to v2.";
    return Task.CompletedTask;
});

URL'lerde Sürümü Değiştirme

SubstituteApiVersionInUrl = true, belgedeki {version:apiVersion} rota belirtecini somut sürümle (örneğin v1) değiştirir; böylece yollar daha anlaşılır görünür.

// Without: /api/v{version}/products
// With:    /api/v1/products

Her Sürüm İçin Bir Arayüz Sekmesi

Çoğu görüntüleyici, tüm belgeleri içeren bir açılır liste gösterebilir. Arayüzü her sürümün JSON dosyasını gösterecek şekilde yapılandırın.

app.MapScalarApiReference(options =>
{
    options.AddDocument("v1", "API v1", "/openapi/v1.json");
    options.AddDocument("v2", "API v2", "/openapi/v2.json");
});

İstek ve Yanıt Biçimlerini Belgeleme

v2, veri aktarım nesnelerini değiştirebileceğinden her sürüm için ayrı veri aktarım nesnesi türleri sağlayın. OpenAPI daha sonra her belge için ayrı şemaları otomatik olarak oluşturur.

// V1 DTO
public record ProductV1(int Id, string Name);
// V2 DTO (breaking change)
public record ProductV2(int Id, string Title, decimal Price);

Her Şeyi Birleştirme

Tam akış şöyledir: sürüm oluşturmayı ve API gezginini yapılandırın, bir filtreyle her sürüm için bir OpenApi belgesi kaydedin, bunları eşleyin ve arayüzünüzü her belgeyi gösterecek şekilde ayarlayın.

builder.Services.AddApiVersioning().AddApiExplorer(o =>
{
    o.GroupNameFormat = "'v'VVV";
    o.SubstituteApiVersionInUrl = true;
});
builder.Services.AddOpenApi("v1");
builder.Services.AddOpenApi("v2");
// ...
app.MapOpenApi();
app.MapScalarApiReference();

Kısa Kontrol

Sürümlü belgelerin nasıl oluşturulduğunu doğrulayın.

Özet

Sürümlü API'leri belgelediniz:

  • AddOpenApi("vN") ile her sürüm için adlandırılmış bir OpenAPI belgesi kaydedin.
  • IApiVersionDescriptionProvider sürümleri listeler; ShouldInclude uç noktaları filtreler.
  • SubstituteApiVersionInUrl, somut sürüm içeren yollar oluşturur.
  • Sürüm başına görünüm sağlamak için arayüzü her belgeyi gösterecek şekilde ayarlayın.

Böylece sürüm oluşturma ve OpenAPI kursu tamamlanır.

Sıkça Sorulan Sorular

“Sürümlenmiş API'leri Belgeleme” dersi ücretsiz mi?

Evet — “Sürümlenmiş API'leri Belgeleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.

“Sürümlenmiş API'leri Belgeleme” dersinde ne öğreneceğim?

Birden çok API sürümü için belgeleri kullanıma açın. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C# Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Sürümlenmiş API'leri Belgeleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. API Sürümleme Stratejileri
  2. Asp.Versioning Yapılandırması
  3. OpenAPI Belgeleri Oluşturma
  4. Sürümlenmiş API'leri Belgeleme
← C# Academy Sayfasına Dön