
OpenAPI .NET (Funktionsweise für Entwickler)
OpenAPI, früher bekannt als Swagger, ist eine Spezifikation für den Aufbau und die Beschreibung von RESTful APIs. Sie ermöglicht es Entwicklern, die Struktur ihrer APIs in einem standardisierten Format zu definieren, sodass verschiedene Tools und Dienste die REST API effektiv verstehen und mit ihr interagieren können, während sie ein Feedback geben. Im .NET-Ökosystem wird die OpenAPI .NET-Integration durch mehrere Bibliotheken und Tools erleichtert, die es einfacher machen, APIs zu erstellen, zu dokumentieren und zu konsumieren.
In diesem Artikel erfahren wir mehr über die OpenAPI-Support-Spezifikationen und wie man mit IronPDF eine PDF-Datei erstellt und als Antwort auf einen API-Aufruf zurückgibt.
Einrichten von OpenAPI in .NET
Um mit dem OpenAPI .NET-Projekt zu beginnen, verwendet man typischerweise die Swashbuckle-Bibliothek, die für Ihre ASP.NET Core APIs OpenAPI-Spezifikationen oder -Dokumentationen generiert.
Schritt 1: Swashbuckle installieren
Zuerst müssen Sie das Swashbuckle.AspNetCore-Paket über NuGet in Visual Studio installieren. Sie können dies mit der NuGet-Paket-Manager-Konsole tun:
Oder verwenden Sie die .NET-CLI:
dotnet add package Swashbuckle.AspNetCore
Schritt 2: Swashbuckle konfigurieren
Als nächstes müssen Sie Swashbuckle in Ihrem ASP.NET Core-Projekt konfigurieren. Dies beinhaltet das Aktualisieren der Program.cs-Datei, um Swagger-Dienste hinzuzufügen und das Swagger-Middleware zu konfigurieren.
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();Dim builder = WebApplication.CreateBuilder(args)
' Add services to the container.
builder.Services.AddControllers()
' Configures Swagger/OpenAPI descriptions.
builder.Services.AddEndpointsApiExplorer()
builder.Services.AddSwaggerGen()
Dim app = builder.Build()
' Configure the HTTP request pipeline.
If app.Environment.IsDevelopment() Then
app.UseSwagger()
app.UseSwaggerUI()
End If
app.UseHttpsRedirection()
app.UseAuthorization()
app.MapControllers()
app.Run()Erstellen und Anzeigen von API-Dokumentation
Sobald Swashbuckle konfiguriert ist, generiert das Ausführen Ihrer Anwendung automatisch OpenAPI-Dokumentation. Sie können diese OpenAPI-Beschreibungen anzeigen, indem Sie zur Swagger UI-Schnittstelle navigieren.
Verwendung von OpenAPI-Definitionen
OpenAPI-Definitionen sind leistungsstarke Werkzeuge, die zur Generierung von Client-SDKs, zum Testen von APIs und zum Sicherstellen der Konsistenz über verschiedene Dienste hinweg genutzt werden können. Die OpenAPI-Spezifikation definiert eine standardisierte, sprachunabhängige Schnittstelle zu APIs, die es sowohl Menschen als auch Computern ermöglicht, die Fähigkeiten eines Dienstes ohne Zugriff auf den Quellcode zu verstehen.
Erweiterung von OpenAPI mit benutzerdefinierten Kommentaren
Swashbuckle ermöglicht es Ihnen, Ihre OpenAPI-Dokumentation mit benutzerdefinierten Anmerkungen zu verbessern. Diese Anmerkungen können direkt zu Ihren Controllern und Modellen hinzugefügt werden, um zusätzliche Informationen über das Verhalten und die Datenstrukturen der API bereitzustellen.
Beispiel: Benutzerdefinierte Anmerkungen
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();
}
}
}Imports Microsoft.AspNetCore.Mvc
Namespace WebApplication8.Controllers
<ApiController>
<Route("[controller]")>
Public Class WeatherForecastController
Inherits ControllerBase
Private Shared ReadOnly Summaries() As String = { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }
Private ReadOnly _logger As ILogger(Of WeatherForecastController)
Public Sub New(ByVal logger As ILogger(Of WeatherForecastController))
_logger = logger
End Sub
<HttpGet(Name := "GetWeatherForecast")>
<SwaggerOperation(Summary := "Gets the weather forecast for the next 5 days")>
<SwaggerResponse(200, "Successfully retrieved weather forecast")>
Public Function [Get]() As IEnumerable(Of WeatherForecast)
Return Enumerable.Range(1, 5).Select(Function(index) New WeatherForecast With {
.Date = DateTime.Now.AddDays(index),
.TemperatureC = Random.Shared.Next(-20, 55),
.Summary = Summaries(Random.Shared.Next(Summaries.Length))
}).ToArray()
End Function
End Class
End NamespaceIn diesem Beispiel werden die SwaggerOperation- und SwaggerResponse-Attribute verwendet, um detaillierte OpenAPI-Beschreibungen und Antwortcodes für den Endpunkt bereitzustellen.
Ausgabe

Klicken Sie auf die Schaltfläche Ausführen, und Sie erhalten die folgende Antwort.

IronPDF
IronPDF für ASP.NET ist ein leistungsstarkes Werkzeug, das eine nahtlose Erzeugung und Bearbeitung von PDF-Dokumenten innerhalb von ASP.NET-Anwendungen ermöglicht. Mit seiner intuitiven API und robusten Funktionalität können Entwickler mühelos die PDF-Generierung in ihre Webprojekte integrieren, um den Benutzern verbesserte Dokumentverwaltungsfähigkeiten zu bieten. Ob es sich um das Erstellen von PDFs von Grund auf, das Konvertieren von HTML-Inhalten in PDF oder das Hinzufügen dynamischer Elemente wie Bilder und Text handelt, IronPDF vereinfacht den Prozess und sorgt für eine effiziente und professionelle Dokumenterstellung.
Schritte zur Installation mit dem NuGet-Paketmanager:
- Öffnen Sie Ihr ASP.NET-Projekt in Visual Studio und navigieren Sie zum Menü "Werkzeuge".
- Wählen Sie "NuGet-Paket-Manager" und klicken Sie dann auf "NuGet-Pakete für Lösung verwalten".
- Suchen Sie im Tab "Durchsuchen" nach "IronPDF" und wählen Sie die gewünschte Version aus. Klicken Sie auf "Installieren", um das Paket zu Ihrem Projekt hinzuzufügen. IronPDF und seine Abhängigkeiten werden automatisch heruntergeladen und integriert, sodass Sie seine Funktionalität nahtlos in Ihrer ASP.NET-Anwendung nutzen können.

PDF-Datei als Antwort auf API-Aufruf abrufen
Fügen Sie den folgenden Code in Ihre Controller-Datei ein, er verwendet IronPDF, um eine PDF-Datei zu erstellen und als Antwort auf den API-Aufruf zurückzugeben.
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");
}
}
}Imports Microsoft.AspNetCore.Mvc
Imports IronPdf
Namespace WebApplication8.Controllers
<ApiController>
<Route("[controller]")>
Public Class WeatherForecastController
Inherits ControllerBase
Private Shared ReadOnly Summaries() As String = { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }
Private ReadOnly _logger As ILogger(Of WeatherForecastController)
Public Sub New(ByVal logger As ILogger(Of WeatherForecastController))
_logger = logger
End Sub
<HttpGet(Name := "GetWeatherForecast")>
Public Function GetWeatherForecastPdf() As IActionResult
Dim 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>"
Dim forecasts = Enumerable.Range(1, 5).Select(Function(index) New WeatherForecast With {
.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
For Each forecast In forecasts
htmlContent &= $"
<tr>
<td>{forecast.Date.ToShortDateString()}</td>
<td>{forecast.TemperatureC}</td>
<td>{forecast.Summary}</td>
</tr>"
Next forecast
htmlContent &= "
</table>
</body>
</html>"
' Convert the HTML string to a PDF using IronPDF
Dim renderer = New ChromePdfRenderer()
Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
' Retrieve the byte array of the generated PDF
Dim pdfBytes = pdfDocument.BinaryData
' Return the PDF file to the client
Return File(pdfBytes, "application/pdf", "WeatherForecast.pdf")
End Function
End Class
End Namespace
Laden Sie die angehängte PDF-Datei herunter und öffnen Sie sie.

Abschluss
OpenAPI, früher bekannt als Swagger, rationalisiert das Design und die Dokumentation von RESTful APIs im .NET-Ökosystem durch Bibliotheken wie Swashbuckle, die die automatische Generierung von API-Dokumentationen für ASP.NET Core-Projekte erleichtern. Durch die Demonstration der Synergie zwischen OpenAPI und IronPDF zeigten wir, wie man die Fähigkeiten von IronPDF nutzen kann, um PDF-Dateien aus HTML-Inhalten zu erstellen und sie als API-Antworten zurückzugeben, was die Funktionalität von ASP.NET-Anwendungen bereichert. Durch die Verwendung von OpenAPI-Standards und die Nutzung der robusten Funktionen von IronPDF können Entwickler ihre API-Dokumentationspraktiken verbessern und den Nutzern gut ausgestattete, funktionsreiche Anwendungen bieten.
Für detaillierte Informationen zur IronPDF-Lizenzierung besuchen Sie bitte die IronPDF-Lizenzierungsdetails. Zusätzlich können Sie unser Tutorial zur HTML-zu-PDF-Konvertierung für weitere Anleitungen erkunden.

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO Cameron Rimington in ein Unternehmen mit mehr als 50 Mitarbeitern verwandelt, das die NASA, Tesla und globale Regierungsbehörden beliefert.
Verwandte Artikel


