Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anmärkning
Det här är inte den senaste versionen av den här artikeln. Den aktuella versionen finns i .NET 10-versionen av den här artikeln.
Varning
Den här versionen av ASP.NET Core stöds inte längre. Mer information finns i supportpolicyn för .NET och .NET Core. För den nuvarande utgåvan, se .NET 9-versionen av den här artikeln .
OpenAPI (Swagger) är en språkagnostisk specifikation för att beskriva REST API:er. gRPC JSON-omkodning stöder generering av OpenAPI från transkodade RESTful-API:er. Paketet Microsoft.AspNetCore.Grpc.Swagger :
- Integrerar gRPC JSON-omkodning med Swashbuckle.
- Är experimentellt i .NET 7 så att vi kan utforska det bästa sättet att tillhandahålla OpenAPI-stöd.
Get started
Så här aktiverar du OpenAPI med gRPC JSON-transkodning:
- Konfigurera gRPC JSON-transkodning genom att följa instruktionerna för att komma igång.
- Lägg till en paketreferens till
Microsoft.AspNetCore.Grpc.Swagger. Versionen måste vara 0.3.0-xxx eller senare. - Konfigurera Swashbuckle vid programstart. Metoden
AddGrpcSwaggerkonfigurerar Swashbuckle för att inkludera gRPC-slutpunkter.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddGrpc().AddJsonTranscoding();
builder.Services.AddGrpcSwagger();
builder.Services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1",
new OpenApiInfo { Title = "gRPC transcoding", Version = "v1" });
});
var app = builder.Build();
app.UseSwagger();
if (app.Environment.IsDevelopment())
{
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
}
app.MapGrpcService<GreeterService>();
app.Run();
Anmärkning
Vägledning om hur du lägger till paket i .NET-appar finns i artiklarna under Installera och hantera paket i arbetsflödet för paketförbrukning (NuGet-dokumentation). Bekräfta rätt paketversioner på NuGet.org.
Lägga till OpenAPI-beskrivningar från .proto kommentarer
Generera OpenAPI-beskrivningar från kommentarer i .proto kontraktet, som i följande exempel:
// My amazing greeter service.
service Greeter {
// Sends a greeting.
rpc SayHello (HelloRequest) returns (HelloReply) {
option (google.api.http) = {
get: "/v1/greeter/{name}"
};
}
}
message HelloRequest {
// Name to say hello to.
string name = 1;
}
message HelloReply {
// Hello reply message.
string message = 1;
}
Så här aktiverar du gRPC OpenAPI-kommentarer:
- Aktivera XML-dokumentationsfilen i serverprojektet med
<GenerateDocumentationFile>true</GenerateDocumentationFile>. - Konfigurera
AddSwaggerGenför att läsa den genererade XML-filen. Skicka XML-filsökvägen tillIncludeXmlCommentsochIncludeGrpcXmlComments, som i följande exempel:
builder.Services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1",
new OpenApiInfo { Title = "gRPC transcoding", Version = "v1" });
var filePath = Path.Combine(System.AppContext.BaseDirectory, "Server.xml");
c.IncludeXmlComments(filePath);
c.IncludeGrpcXmlComments(filePath, includeControllerXmlComments: true);
});
Om du vill bekräfta att Swashbuckle genererar OpenAPI med beskrivningar för RESTful gRPC-tjänsterna startar du appen och går till swagger-användargränssnittssidan:
Ytterligare resurser
ASP.NET Core