Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
Ważne
Te informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany, zanim zostanie wydany komercyjnie. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
Autor: James Newton-King
OpenAPI (Swagger) to niezależna od języka specyfikacja do opisywania REST interfejsów API. Transkodowanie gRPC JSON obsługuje generowanie interfejsu OpenAPI z transkodowanych interfejsów API RESTful. Pakiet Microsoft.AspNetCore.Grpc.Swagger
:
- Integruje transkodowanie gRPC JSON z pakietem Swashbuckle.
- Jest eksperymentalny na platformie .NET 7, aby umożliwić nam zapoznanie się z najlepszym sposobem zapewnienia obsługi interfejsu OpenAPI.
Rozpocznij
Aby włączyć interfejs OpenAPI z transkodowaniem JSON gRPC:
- Dodaj odwołanie do pakietu do
Microsoft.AspNetCore.Grpc.Swagger
. Wersja musi być 0.3.0-xxx lub nowsza. - Skonfiguruj pakiet Swashbuckle podczas uruchamiania. Metoda
AddGrpcSwagger
konfiguruje pakiet Swashbuckle tak, aby zawierał punkty końcowe 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();
Uwaga
Aby uzyskać instrukcje dodawania pakietów do aplikacji .NET, zobacz artykuły w sekcji Instalowanie pakietów i zarządzanie nimi w temacie Przepływ pracy użycia pakietów (dokumentacja programu NuGet). Sprawdź prawidłowe wersje pakietów pod adresem NuGet.org.
Dodawanie opisów interfejsu OpenAPI z .proto
komentarzy
Wygeneruj opisy interfejsu OpenAPI na podstawie komentarzy w umowie .proto
, jak w poniższym przykładzie:
// 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;
}
Aby włączyć komentarze gRPC OpenAPI:
- Włącz plik dokumentacji XML w projekcie serwera za pomocą polecenia
<GenerateDocumentationFile>true</GenerateDocumentationFile>
. - Skonfiguruj
AddSwaggerGen
, aby odczytać wygenerowany plik XML. Przekaż ścieżkę pliku XML doIncludeXmlComments
iIncludeGrpcXmlComments
, jak pokazano w poniższym przykładzie:
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);
});
Aby potwierdzić, że pakiet Swashbuckle generuje interfejs OpenAPI z opisami dla usług GRPC RESTful, uruchom aplikację i przejdź do strony interfejsu użytkownika struktury Swagger: