IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

OpenAPI .NET (jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 21 kwietnia 2026

OpenAPI, znane wcześniej jako Swagger, to specyfikacja służąca do tworzenia i opisywania interfejsów API typu RESTful. Pozwala programistom definiować strukturę swoich interfejsów API w standardowym formacie, umożliwiając różnym narzędziom i usługom skuteczne rozumienie interfejsu API REST oraz interakcję z nim, a także przekazywanie informacji zwrotnych. W ekosystemie .NET integracja OpenAPI .NET jest ułatwiona dzięki kilku bibliotekom i narzędziom, które ułatwiają tworzenie, dokumentówanie i wykorzystywanie interfejsów API.

W tym artykułe dowiemy się o specyfikacjach obsługi OpenAPI oraz o tym, jak utworzyć plik PDF za pomocą IronPDF i zwrócić go jako odpowiedź na wywołanie API.

Konfiguracja OpenAPI w .NET

Aby rozpocząć pracę z projektem OpenAPI .NET, zazwyczaj używa się biblioteki Swashbuckle, która generuje specyfikację OpenAPI lub dokumentację dla interfejsów API ASP.NET Core.

Krok 1: Zainstaluj Swashbuckle

Najpierw należy zainstalować pakiet Swashbuckle.AspNetCore za pośrednictwem NuGet w Visual Studio. Można to zrobić za pomocą konsoli NuGet Package Manager Console:

PM > Install-Package Swashbuckle.AspNetCore

Lub za pomocą interfejsu CLI platformy .NET:

dotnet add package Swashbuckle.AspNetCore
SHELL

Krok 2: Skonfiguruj Swashbuckle

Następnie należy skonfigurować Swashbuckle w projekcie ASP.NET Core. To obejmuje zaktualizowanie pliku Program.cs, aby dodać usługi Swagger i skonfigurować oprogramowanie pośredniczące Swagger.

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

Generowanie i przeglądanie dokumentacji API

Po skonfigurowaniu Swashbuckle uruchomienie aplikacji spowoduje automatyczne wygenerowanie dokumentacji OpenAPI. Opisy OpenAPI można wyświetlić, przechodząc do interfejsu Swagger UI.

Korzystanie z definicji OpenAPI

Definicje OpenAPI to potężne narzędzia, które można wykorzystać do generowania zestawów SDK dla klientów, testowania interfejsów API oraz zapewnienia spójności między różnymi usługami. Specyfikacja OpenAPI definiuje standardowy, niezależny od języka interfejs do API, który pozwala zarówno ludziom, jak i komputerom zrozumieć możliwości usługi bez dostępu do kodu źródłowego.

Rozszerzanie OpenAPI o niestandardowe adnotacje

Swashbuckle pozwala wzbogacić dokumentację OpenAPI o niestandardowe adnotacje. Te adnotacje można dodawać bezpośrednio do kontrolerów i modeli, aby zapewnić dodatkowe informacje na temat zachowania API i struktur danych.

Przykład: Adnotacje niestandardowe

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

W tym przykładzie atrybuty SwaggerOperation oraz SwaggerResponse są używane do dostarczenia szczegółowych opisów OpenAPI i kodów odpowiedzi dla punktu końcowego.

Wynik

OpenAPI .NET (Jak to działa dla programistów): Rysunek 1 - Wynik niestandardowych adnotacji

Kliknij przycisk Wykonaj, a otrzymasz następującą odpowiedź.

OpenAPI .NET (Jak to działa dla programistów): Rysunek 2 - Wynik odpowiedzi

IronPDF

IronPDF dla ASP.NET to potężne narzędzie, które umożliwia płynne generowanie i edycję dokumentów PDF w aplikacjach ASP.NET. Dzięki intuicyjnemu API i solidnej funkcjonalności programiści mogą bez wysiłku zintegrować generowanie plików PDF ze swoimi projektami internetowymi, oferując użytkownikom ulepszone możliwości zarządzania dokumentami. Niezależnie od tego, czy chodzi o tworzenie plików PDF od podstaw, konwersję treści HTML do formatu PDF, czy dodawanie elementów dynamicznych, takich jak obrazy i tekst, IronPDF upraszcza ten proces, zapewniając wydajne i profesjonalne generowanie dokumentów.

Kroki instalacji przy użyciu menedżera pakietów NuGet:

  1. Otwórz projekt ASP.NET w programie Visual Studio i przejdź do menu "Narzędzia".
  2. Wybierz "NuGet Package Manager", a następnie kliknij "Manage NuGet Packages for Solution".
  3. W zakładce "Przeglądaj" wyszukaj "IronPDF" i wybierz żądaną wersję. Kliknij "Zainstaluj", aby dodać pakiet do swojego projektu. IronPDF i jego zależności zostaną automatycznie pobrane i zintegrowane, co pozwoli na płynne wykorzystanie jego funkcjonalności w aplikacji ASP.NET.

OpenAPI .NET (Jak to działa dla programistów): Rysunek 3 - IronPDF

Pobierz plik PDF w odpowiedzi na wywołanie API

Dodaj poniższy kod do pliku kontrolera. Wykorzystuje on bibliotekę IronPDF do utworzenia pliku PDF i zwrócenia go jako odpowiedzi na wywołanie API.

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 (Jak to działa dla programistów): Rysunek 4 - Wynik API

Pobierz i otwórz załączony plik PDF.

OpenAPI .NET (Jak to działa dla programistów): Rysunek 5 - Wynik PDF

Wnioski

OpenAPI, znane wcześniej jako Swagger, usprawnia projektowanie i dokumentację RESTful API w ekosystemie .NET poprzez biblioteki takie jak Swashbuckle, ułatwiając automatyczne generowanie dokumentacji API dla projektów ASP.NET Core. Demonstrując synergię między OpenAPI a IronPDF, pokazaliśmy, jak wykorzystać możliwości IronPDF do generowania plików PDF z treści HTML i zwracania ich jako odpowiedzi API, wzbogacając funkcjonalność aplikacji ASP.NET. Wdrażając standardy OpenAPI i wykorzystując rozbudowane funkcje IronPDF, programiści mogą usprawnić proces tworzenia dokumentacji API i dostarczać użytkownikom dopracowane, bogate w funkcje aplikacje.

Szczegółowe informacje na temat licencji IronPDF można znaleźć w opisie licencji IronPDF. Dodatkowo możesz zapoznać się z naszym samouczkiem dotyczącym konwersji HTML do PDF, aby uzyskać dalsze wskazówki.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta