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 Paket Swashbuckle.AspNetCore über NuGet in Visual Studio installieren. Sie können dies mit der NuGet-Paket-Manager-Konsole tun:
Install-Package Swashbuckle.AspNetCore
Oder verwenden Sie die .NET-CLI:
dotnet add package Swashbuckle.AspNetCore
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 die Aktualisierung der Datei Program.cs, um Swagger-Dienste hinzuzufügen und die 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();
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();
}
}
}
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 Namespace
In diesem Beispiel werden die Attribute SwaggerOperation und SwaggerResponse 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");
}
}
}
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.
Häufig gestellte Fragen
Wie kann ich HTML-Inhalte in einer ASP.NET-Anwendung in ein PDF konvertieren?
Sie können IronPDF in einer ASP.NET-Anwendung verwenden, um HTML-Inhalte in ein PDF zu konvertieren. Durch die Nutzung der Funktionen von IronPDF können Sie HTML-Strings oder -Dateien in PDF-Dokumente rendern, die dann als API-Antworten bereitgestellt oder für Dokumentenverwaltungszwecke gespeichert werden können.
Welche Rolle spielt OpenAPI im .NET-Ökosystem?
OpenAPI spielt eine entscheidende Rolle im .NET-Ökosystem, indem es eine standardisierte Möglichkeit bietet, RESTful APIs zu definieren und zu dokumentieren. Diese Integration wird oft durch Tools wie Swashbuckle erleichtert, die OpenAPI-Spezifikationen erzeugen und eine einfache API-Nutzung in ASP.NET Core-Projekten ermöglichen.
Wie richte ich Swagger UI in einem .NET-Projekt mit Swashbuckle ein?
Um Swagger UI in einem .NET-Projekt mit Swashbuckle einzurichten, installieren Sie das Swashbuckle.AspNetCore-Paket über NuGet. Konfigurieren Sie dann die Swagger-Dienste in Ihrer Program.cs-Datei und richten Sie die Swagger-Middleware ein, um die automatische Erstellung und den Zugriff auf API-Dokumentationen über Swagger UI zu ermöglichen.
Wie kann ich Client-SDKs aus OpenAPI-Definitionen in .NET generieren?
OpenAPI-Definitionen können verwendet werden, um Client-SDKs zu generieren, die den Verbrauch von APIs erleichtern, indem sie die Komplexität von API-Aufrufen abstrahieren. In .NET können Tools wie Swashbuckle diese Definitionen erzeugen, die dann mit Tools wie AutoRest verwendet werden können, um Client-SDKs in verschiedenen Programmiersprachen zu erstellen.
Welche Vorteile bietet die Verwendung benutzerdefinierter Annotationen in der OpenAPI-Dokumentation?
Benutzerdefinierte Annotationen in der OpenAPI-Dokumentation verbessern die Klarheit und Detailgenauigkeit von API-Spezifikationen. In .NET ermöglicht Swashbuckle die Verwendung von Attributen wie SwaggerOperation und SwaggerResponse, um Beschreibungen und Antwortcodes hinzuzufügen, wodurch die API-Dokumentation informativer und für Entwickler einfacher zu verstehen wird.
Wie kann ich eine PDF-Datei als API-Antwort in ASP.NET Core liefern?
Sie können eine PDF-Datei als API-Antwort in ASP.NET Core liefern, indem Sie IronPDF verwenden. Erstellen Sie das PDF aus HTML-Inhalten mit den Render-Methoden von IronPDF und geben Sie die PDF-Datei in Ihrer API-Controller-Aktion mit ASP.NET Core's IActionResult zur Ausgabe der Datei als Teil der Antwort zurück.
Welche Vorteile bringt die Kombination von OpenAPI und PDF-Erstellungstools für ASP.NET-Anwendungen?
Die Kombination von OpenAPI und PDF-Erstellungstools wie IronPDF in ASP.NET-Anwendungen bietet umfassende API-Dokumentation und verbessert die Funktionalität, indem sie APIs ermöglicht, professionelle PDF-Dokumente zurückzugeben. Diese Integration unterstützt eine effiziente Dokumentenverwaltung und bereichert die Gesamtkapazitäten der Anwendung.




