Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Toto není nejnovější verze tohoto článku. Aktuální verzi najdete v tomto článku ve verzi .NET 9.
Upozorňující
Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v zásadách podpory .NET a .NET Core. Aktuální verzi najdete v tomto článku ve verzi .NET 9.
Důležité
Tyto informace se týkají předběžného vydání produktu, který může být podstatně změněn před komerčním vydáním. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Aktuální verzi najdete v tomto článku ve verzi .NET 9.
ASP.NET Core podporuje generování dokumentů OpenAPI v aplikacích založených na kontroleru a minimálních rozhraníCH API. Specifikace OpenAPI je programovací standard nezávislý na jazyce pro dokumentaci rozhraní HTTP API. Tento standard se podporuje v aplikacích ASP.NET Core prostřednictvím kombinace integrovaných rozhraní API a opensourcových knihoven. Integrace OpenAPI v aplikaci má tři klíčové aspekty:
- Generování informací okoncovýchch
- Shromažďování informací do formátu, který odpovídá schématu OpenAPI.
- Vystavení vygenerovaného dokumentu OpenAPI prostřednictvím vizuálního uživatelského rozhraní nebo serializovaného souboru
aplikace ASP.NET Core poskytují integrovanou podporu generování informací o koncových bodech v aplikaci prostřednictvím Microsoft.AspNetCore.OpenApi
balíčku.
Následující kód vygeneruje ASP.NET minimální šablona webového rozhraní API a používá OpenAPI:
using Microsoft.AspNetCore.OpenApi;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOpenApi();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.MapOpenApi();
}
app.UseHttpsRedirection();
var summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
app.MapGet("/weatherforecast", () =>
{
var forecast = Enumerable.Range(1, 5).Select(index =>
new WeatherForecast
(
DateTime.Now.AddDays(index),
Random.Shared.Next(-20, 55),
summaries[Random.Shared.Next(summaries.Length)]
))
.ToArray();
return forecast;
})
.WithName("GetWeatherForecast");
app.Run();
internal record WeatherForecast(DateTime Date, int TemperatureC, string? Summary)
{
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}
V předchozím zvýrazněném kódu:
-
AddOpenApi
registruje služby potřebné pro generování dokumentů OpenAPI do kontejneru DI aplikace. -
MapOpenApi
přidá do aplikace koncový bod pro zobrazení dokumentu OpenAPI serializovaného do formátu JSON. Koncový bod OpenAPI je omezený na vývojové prostředí, aby se minimalizovalo riziko vystavení citlivých informací a snížení ohrožení zabezpečení v produkčním prostředí.
Microsoft.AspNetCore.OpenApi
Balíček NuGet
Balíček Microsoft.AspNetCore.OpenApi
obsahuje následující funkce:
- Podpora generování dokumentů OpenAPI za běhu a přístup k nim prostřednictvím koncového bodu v aplikaci
- Podpora rozhraní API transformátoru, která umožňují upravovat vygenerovaný dokument.
Pokud chcete balíček použít Microsoft.AspNetCore.OpenApi
, přidejte ho jako PackageReference do souboru projektu:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<PropertyGroup>
<OpenApiGenerateDocuments>true</OpenApiGenerateDocuments>
<OpenApiDocumentsDirectory>$(MSBuildProjectDirectory)</OpenApiDocumentsDirectory>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.*-*" />
<PackageReference Include="Microsoft.Extensions.ApiDescription.Server" Version="9.0.*-*">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
</Project>
Další informace o Microsoft.AspNetCore.OpenApi
balíčku najdete v tématu Generování dokumentů OpenAPI.
Microsoft.Extensions.ApiDescription.Server
Balíček NuGet
Balíček Microsoft.Extensions.ApiDescription.Server
poskytuje podporu pro generování dokumentů OpenAPI v době sestavení a jejich serializaci.
Pokud ho chcete použít Microsoft.Extensions.ApiDescription.Server
, přidejte ho jako PackageReference do souboru projektu.
Generování dokumentů v době sestavení je povoleno nastavením OpenApiGenerateDocuments
vlastnosti.
Ve výchozím nastavení se vygenerovaný dokument OpenAPI uloží do obj
adresáře, ale výstupní adresář můžete přizpůsobit nastavením OpenApiDocumentsDirectory
vlastnosti.
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<PropertyGroup>
<OpenApiGenerateDocuments>true</OpenApiGenerateDocuments>
<OpenApiDocumentsDirectory>$(MSBuildProjectDirectory)</OpenApiDocumentsDirectory>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.*-*" />
<PackageReference Include="Microsoft.Extensions.ApiDescription.Server" Version="9.0.*-*">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
</Project>
Rozhraní API v. Operace rozhraní API v. Koncový bod rozhraní API
Následující části popisují rozdíly mezi rozhraním API, koncovým bodem rozhraní API a operací rozhraní API v kontextu dokumentace k ASP.NET Core a OpenAPI.
ROZHRANÍ API (aplikační programovací rozhraní)
Rozhraní API je sada zásad a protokolů pro vytváření a interakci se softwarovými aplikacemi. Definuje, jak mají různé softwarové komponenty komunikovat. Obecně vývoj webu "API" obvykle odkazuje na webovou službu, která zpřístupňuje funkce prostřednictvím protokolu HTTP.
V ASP.NET Core se rozhraní API obvykle sestavuje pomocí kontrolerů nebo minimálních rozhraní API, která zpracovávají příchozí požadavky HTTP a vracejí odpovědi.
Interní zásady pojmenování v ASP.NET Core někdy používají "rozhraní API" odlišně. Například v Průzkumníku rozhraní API představuje "ApiDescription" operaci rozhraní API místo úplné služby API. Tento rozdíl odráží interní konvence pojmenování a někdy se liší od širší definice, která se zde používá.
Další informace o Průzkumníku rozhraní API najdete v tématu Úvod k rozhraní APIExplorer v ASP.NET Core .
Operace rozhraní API
Operace rozhraní API představuje konkrétní akci nebo funkci, kterou poskytuje rozhraní API. V ASP.NET Core to odpovídá:
- Metody akcí kontroleru v rozhraních API ve stylu MVC
- Obslužné funkce tras v minimalním API
Každá operace je definována metodou HTTP (GET
, POST
, PUT
, atd.), cestou, parametry a odpověďmi.
Koncový bod rozhraní API
Koncový bod rozhraní API je konkrétní adresa URL:
- Představuje konkrétní prostředek nebo funkce vystavené rozhraním API.
- Poskytuje přesnou adresu, na kterou klient potřebuje odeslat požadavek HTTP, aby mohl komunikovat s konkrétní operací rozhraní API.
Koncový bod je kombinace základní adresy URL rozhraní API a konkrétní cesty k požadovanému prostředku spolu s podporovanými metodami HTTP:
- U rozhraní API založených na kontroleru kombinují koncové body šablonu trasy s kontrolerem a akcí.
- U minimálních rozhraní API jsou koncové body explicitně definovány pomocí
app.MapGet()
app.MapPost()
atd.
Například api/products/{id}
koncový bod, který podporuje následující operace:
GET /api/products/{id}
PUT /api/products/{id}
PATCH /api/products/{id}
Delete /api/products/{id}
HEAD /api/products/{id}
Koncové body často zahrnují parametry dotazu, například GET /api/products?category=electronics&sort=price
Dokumentace k OpenAPI
V kontextu OpenAPI popisuje dokumentace rozhraní API jako celek, včetně všech jeho koncových bodů a operací. OpenAPI poskytuje strukturovaný způsob, jak dokumentovat rozhraní API, což vývojářům usnadňuje pochopení toho, jak s nimi pracovat.
Operace rozhraní API jsou primárním cílem dokumentace OpenAPI. Specifikace OpenAPI organizuje dokumentaci podle operací, které jsou seskupené podle cest (koncových bodů). Každá operace je popsána s podrobnostmi, jako jsou parametry, těla požadavků, odpovědi a další. Tento strukturovaný formát umožňuje nástrojům automaticky generovat klientské knihovny, zástupné procedury serveru a interaktivní dokumentaci.
V dokumentu OpenAPI:
- Celý dokument popisuje rozhraní API jako celek.
- Každá položka cesty (například
/api/products/{id}
) představuje koncový bod. - V každé cestě definují metody HTTP (
GET
,POST
,PUT
atd.) operace. - Každá operace obsahuje podrobnosti o parametrech, textu požadavku, odpovědích atd.
Příklad ve formátu JSON OpenAPI:
json{
"paths": {
"/api/products/{id}": { // This is the endpoint
"get": { // This is the operation
"summary": "Get a product by ID",
"parameters": [...],
"responses": {...}
},
"put": { // Another operation on the same endpoint
"summary": "Update a product",
"parameters": [...],
"responses": {...}
}
}
}
}
Porovnání rozhraní API, operace rozhraní API a koncového bodu rozhraní API
Následující tabulka shrnuje rozdíly mezi rozhraním API, operací rozhraní API a koncovým bodem rozhraní API:
Koncepce | Operace rozhraní API | Koncový bod rozhraní API |
---|---|---|
definice | Logický popis akce rozhraní API: metoda + cesta + chování | Skutečná nakonfigurovaná trasa HTTP, která naslouchá požadavkům |
Úroveň | Koncepčně, jaká akce se může stát? | Jaká konkrétní adresa URL a metoda se shodují? |
Svázaný s | Návrh a specifikace rozhraní Api OpenAPI | směrování ASP.NET Core za běhu |
Popisuje | Co rozhraní API dělá, například „vytvořit produkt“ | Kde a jak ho volat, například POST https://localhost:7099/api/products , POST https://contoso.com/api/products |
V ASP.NET Core | Akce kontroleru nebo metody Minimal API před vyřešením směrování | Objekty koncového bodu vyřešené během běhu |
ASP.NET základní zdrojový kód OpenAPI na GitHubu
Další materiály
Specifikace OpenAPI je programovací standard nezávislý na jazyce pro dokumentaci rozhraní HTTP API. Tento standard se podporuje v minimálních rozhraních API prostřednictvím kombinace integrovaných rozhraní API a opensourcových knihoven. Integrace OpenAPI v aplikaci má tři klíčové aspekty:
- Generování informací okoncovýchch
- Shromažďování informací do formátu, který odpovídá schématu OpenAPI.
- Vystavení vygenerovaného schématu OpenAPI prostřednictvím vizuálního uživatelského rozhraní nebo serializovaného souboru
Minimální rozhraní API poskytují integrovanou podporu generování informací o koncových bodech v aplikaci prostřednictvím Microsoft.AspNetCore.OpenApi
balíčku. Zveřejnění vygenerované definice OpenAPI prostřednictvím vizuálního uživatelského rozhraní vyžaduje balíček třetí strany.
Informace o podpoře rozhraní OPENAPI v rozhraních API založených na kontroleru najdete ve verzi tohoto článku v .NET 9.