IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

OpenAPI .NET (Geliştiriciler İçin Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

OpenAPI, eski adıyla Swagger, RESTful API'ler oluşturmak ve tanımlamak için bir spesifikasyondur. Geliştiricilerin API'lerinin yapısını standart bir formatta tanımlamasına olanak tanır, böylece çeşitli araçlar ve hizmetler REST API'yi etkili bir şekilde anlayabilir, etkileşimde bulunabilir ve geri bildirim sağlayabilir. .NET ekosisteminde OpenAPI .NET entegrasyonu, API'leri oluşturmayı, belgelemeyi ve kullanmayı kolaylaştıran birçok kütüphane ve araçla sağlanır.

Bu makalede, OpenAPI destek spesifikasyonlarını nasıl oluşturacağımızı ve IronPDF kullanarak bir PDF dosyası oluşturup bunu bir API çağrısı yanıtı olarak nasıl döndüreceğimizi öğreneceğiz.

.NET'te OpenAPI Kurulumu

OpenAPI .NET projesine başlamak için genellikle, ASP.NET Core API'leriniz için OpenAPI spesifikasyonu veya dokümantasyonu oluşturan Swashbuckle kütüphanesini kullanırsınız.

Adım 1: Swashbuckle Yükleme

Öncelikle, Visual Studio'da Swashbuckle.AspNetCore paketini NuGet aracılığıyla yüklemeniz gerekir. Bu işlemi NuGet Paket Yöneticisi Konsolu'nu kullanarak yapabilirsiniz:

PM > Install-Package Swashbuckle.AspNetCore

Veya .NET CLI kullanarak:

dotnet add package Swashbuckle.AspNetCore
SHELL

Adım 2: Swashbuckle'ı Yapılandırma

Sonra, ASP.NET Core projenizde Swashbuckle'ı yapılandırmanız gerekiyor. Bu, Swagger hizmetlerini eklemek ve Swagger ara yazılımını yapılandırmak için Program.cs dosyasını güncellemeyi içerir.

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllers();
// Configures Swagger/OpenAPI descriptions.
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();

API Dokümantasyonu Üretme ve Görüntüleme

Swashbuckle yapılandırıldığında, uygulamanızı çalıştırdığınızda otomatik olarak OpenAPI dokümantasyonu üretilir. Bu OpenAPI açıklamalarını görmek için Swagger UI arayüzü'ne giderek görebilirsiniz.

OpenAPI Tanımlarını Kullanma

OpenAPI tanımları, istemci SDK'ları oluşturma, API'ları test etme ve farklı servisler arasında tutarlılığı sağlama gibi amaçlar için güçlü araçlardır. OpenAPI spesifikasyonu, API'ların standardize edilmiş, dilden bağımsız bir arayüzünü tanımlar; bu, hem insanlar hem de bilgisayarlar için kaynağına erişim olmadan bir hizmetin yeteneklerini anlamalarına olanak tanır.

Özel Anotasyonlarla OpenAPI'yi Genişletme

Swashbuckle, OpenAPI dokümantasyonunuzu özel anotasyonlarla zenginleştirmenize imkan tanır. Bu anotasyonlar, API'nin davranışı ve veri yapıları hakkında ek bilgi sağlamak için doğrudan denetleyicilerinize ve modellerinize eklenebilir.

Örnek: Özel Anotasyonlar

using Microsoft.AspNetCore.Mvc;

namespace WebApplication8.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
        private static readonly string[] Summaries = new[]
        {
            "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
        };

        private readonly ILogger<WeatherForecastController> _logger;

        public WeatherForecastController(ILogger<WeatherForecastController> logger)
        {
            _logger = logger;
        }

        [HttpGet(Name = "GetWeatherForecast")]
        [SwaggerOperation(Summary = "Gets the weather forecast for the next 5 days")]
        [SwaggerResponse(200, "Successfully retrieved weather forecast")]
        public IEnumerable<WeatherForecast> Get()
        {
            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateTime.Now.AddDays(index),
                TemperatureC = Random.Shared.Next(-20, 55),
                Summary = Summaries[Random.Shared.Next(Summaries.Length)]
            })
            .ToArray();
        }
    }
}

Bu örnekte, SwaggerOperation ve SwaggerResponse özellikleri, uç nokta için ayrıntılı OpenAPI açıklamaları ve yanıt kodları sağlamak amacıyla kullanılıyor.

Çıktı

OpenAPI .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - Özel Anotasyonlar Çıkışı

Execute butonuna tıklayın ve aşağıdaki yanıtı alacaksınız.

OpenAPI .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Yanıt Çıkışı

IronPDF

IronPDF for ASP.NET, ASP.NET uygulamalarında kesintisiz PDF belge oluşturma ve düzenlemeyi sağlayan güçlü bir araçtır. Sezgisel API'si ve sağlam işlevselliği ile geliştiriciler, web projelerine PDF oluşturmayı zahmetsizce entegre edebilir, kullanıcılara gelişmiş belge yönetimi yetenekleri sunabilir. Sıfırdan PDF oluşturma, HTML içeriğini PDF'ye dönüştürme veya resim ve metin gibi dinamik öğeler ekleme olsun, IronPDF süreci basitleştirir, verimli ve profesyonel belge oluşturmayı sağlar.

NuGet Paket Yöneticisi kullanarak yükleme adımları:

  1. ASP.NET projenizi Visual Studio'da açın ve "Araçlar" menüsüne gidin.
  2. "NuGet Paket Yöneticisi"ni seçin ve ardından "Solution için NuGet Paketlerini Yönet" seçeneğine tıklayın.
  3. "Gözat" sekmesinde "IronPDF" arayın ve istenen sürümü seçin. Projeye paketi eklemek için "Yükle" seçeneğine tıklayın. IronPDF ve bağımlılıkları otomatik olarak indirilecek ve entegre edilecek, böylece ASP.NET uygulamanızda işlevselliğinden sorunsuz bir şekilde yararlanmaya başlayabilirsiniz.

OpenAPI .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - IronPDF

API Çağrısına Yanıt Olarak PDF Dosyası Alın

Aşağıdaki kodu denetleyici dosyanıza ekleyin, IronPDF kullanarak bir PDF dosyası oluşturur ve bunu API çağrısına yanıt olarak döndürür.

using Microsoft.AspNetCore.Mvc;
using IronPdf;

namespace WebApplication8.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
        private static readonly string[] Summaries = new[]
        {
            "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
        };

        private readonly ILogger<WeatherForecastController> _logger;

        public WeatherForecastController(ILogger<WeatherForecastController> logger)
        {
            _logger = logger;
        }

        [HttpGet(Name = "GetWeatherForecast")]
        public IActionResult GetWeatherForecastPdf()
        {
            var htmlContent = @"
        <html>
        <head>
            <title>Weather Forecast</title>
        </head>
        <body>
            <h1>Weather Forecast</h1>
            <table>
                <tr>
                    <th>Date</th>
                    <th>Temperature (Celsius)</th>
                    <th>Summary</th>
                </tr>";

            var forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateTime.Now.AddDays(index),
                TemperatureC = Random.Shared.Next(-20, 55),
                Summary = Summaries[Random.Shared.Next(Summaries.Length)]
            });

            // Iterate over the forecasts and add data to the HTML string
            foreach (var forecast in forecasts)
            {
                htmlContent += $@"
            <tr>
                <td>{forecast.Date.ToShortDateString()}</td>
                <td>{forecast.TemperatureC}</td>
                <td>{forecast.Summary}</td>
            </tr>";
            }

            htmlContent += @"
            </table>
        </body>
        </html>";

            // Convert the HTML string to a PDF using IronPDF
            var renderer = new ChromePdfRenderer();
            var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);

            // Retrieve the byte array of the generated PDF
            var pdfBytes = pdfDocument.BinaryData;
            // Return the PDF file to the client
            return File(pdfBytes, "application/pdf", "WeatherForecast.pdf");
        }
    }
}

OpenAPI .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 4 - API Çıkışı

Ekteki PDF dosyasını indirin ve açın.

OpenAPI .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 5 - PDF Çıkışı

Sonuç

Eski adıyla Swagger olan OpenAPI, RESTful API tasarımını ve dokümantasyonunu .NET ekosisteminde Swashbuckle gibi kütüphanelerle kolaylaştırır ve ASP.NET Core projeleri için otomatik API dokümantasyonu üretimini destekler. OpenAPI ve IronPDF arasındaki sinerjiyi göstererek, IronPDF'in yeteneklerini HTML içeriğinden PDF dosyaları oluşturmak ve bunları API yanıtı olarak döndürmek için nasıl kullanabileceğimizi ve böylece ASP.NET uygulamalarının işlevselliğini zenginleştirdiğimizi sergiledik. OpenAPI standartlarını benimseyerek ve IronPDF'in sağlam özelliklerinden yararlanarak, geliştiriciler API dokümantasyon uygulamalarını geliştirebilir ve son kullanıcılara cilalı, özellik açısından zengin uygulamalar sunabilir.

IronPDF lisanslama hakkında ayrıntılı bilgi için lütfen IronPDF lisanslama detayları sayfasına bakın. Ayrıca, daha fazla rehberlik için HTML'den PDF'e dönüşüm eğiticimizi keşfedebilirsiniz.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez