Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nota
Questa non è la versione più recente di questo articolo. Per la versione corrente, vedere la versione .NET 10 di questo articolo.
Avviso
Questa versione di ASP.NET Core non è più supportata. Per altre informazioni, vedere i criteri di supporto di .NET e .NET Core. Per la versione corrente, vedere la versione .NET 9 di questo articolo.
OpenAPI (Swagger) è una specifica indipendente dal linguaggio per la descrizione delle REST API. La transcodifica JSON gRPC supporta la generazione di OpenAPI da API RESTful transcodificate. Il pacchetto Microsoft.AspNetCore.Grpc.Swagger:
- Integra la transcodifica JSON gRPC con Swashbuckle.
- È sperimentale in .NET 7 per consentire di esplorare il modo migliore per fornire il supporto OpenAPI.
Operazioni preliminari
Per abilitare OpenAPI con la transcodifica JSON gRPC:
- Configurare la transcodifica JSON gRPC seguendo le istruzioni introduttive.
- Aggiungere un riferimento al pacchetto a
Microsoft.AspNetCore.Grpc.Swagger. La versione deve essere 0.3.0-xxx o successiva. - Configurare Swashbuckle all'avvio. Il
AddGrpcSwaggermetodo configura Swashbuckle per includere gli endpoint gRPC.
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();
Nota
Per indicazioni sull'aggiunta di pacchetti alle app .NET, vedere gli articoli sotto Installare e gestire pacchetti in Flusso di lavoro dell'utilizzo di pacchetti (documentazione di NuGet). Confermare le versioni corrette del pacchetto all'indirizzo NuGet.org.
Aggiungere descrizioni OpenAPI dai .proto commenti
Generare descrizioni OpenAPI dai commenti nel .proto contratto, come nell'esempio seguente:
// 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;
}
Per abilitare i commenti OpenAPI gRPC:
- Abilitare il file di documentazione XML nel progetto server con
<GenerateDocumentationFile>true</GenerateDocumentationFile>. - Configurare
AddSwaggerGenper leggere il file XML generato. Passare il percorso del file XML aIncludeXmlCommentseIncludeGrpcXmlComments, come nell'esempio seguente:
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);
});
Per verificare che Swashbuckle generi OpenAPI con descrizioni per i servizi RESTful gRPC, avviare l'app e passare alla pagina dell'interfaccia utente di Swagger: