gRPC-swagger — это инструмент для отладки gRPC, разработанный на основе gRPC reflection. Он позволяет удобно просматривать и вызывать методы gRPC с помощью swagger-ui. Поскольку gRPC-Swagger основан на отражении gRPC, при запуске службы необходимо включить функцию отражения, при этом не требуется изменять файлы proto и связанный код реализации.
gRPC-swagger — это инструмент отладки gRPC, созданный на основе gRPC Reflection. Его можно использовать для удобного просмотра и вызова методов gRPC с использованием swagger-UI. Поскольку gRPC-swagger основан на gRPC Reflection, вам нужно только включить функцию Reflection при запуске сервиса, без необходимости изменять протофайлы и связанные реализации кода.
На скриншотах показаны примеры интерфейса программы.
wget https://github.com/grpc-swagger/grpc-swagger/releases/download/0.1.1/grpc-swagger-web-0.0.1-SNAPSHOT.jar
java -jar grpc-swagger-web-0.0.1-SNAPSHOT.jar
mvn clean package
java -jar grpc-swagger-web/target/grpc-swagger-web-0.0.1-SNAPSHOT.jar
По умолчанию он запускается через порт 8080, используйте --server.port=yourport
, если вы хотите использовать другой порт.
java -jar grpc-swagger-web/target/grpc-swagger-web-0.0.1-SNAPSHOT.jar --server.port=8888
pom.xml
:
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-services</artifactId>
<version>${grpc.version}</version>
</dependency>
Server server = ServerBuilder.forPort(SERVER_PORT)
.addService(new HelloServiceImpl())
.addService(ProtoReflectionService.newInstance())
.build()
.start();
register
, gRPC-swagger автоматически просканирует доступные сервисы и вернёт успешно зарегистрированные сервисы после завершения. Зарегистрированные сервисы можно просмотреть через интерфейс listServices
. Для удобства использования мы предоставили простую HTML-страницу здесь.<host:port>/v2/api?service=<fullServiceName>
в поле ввода вверху, где fullServiceName
— это имя успешно зарегистрированного сервиса выше.URL: /listServices
Пример ответа:
{
"code": 0,
"data": {
"localhost:12347": {
"groupName": "localhost:12347",
"services": [
"io.grpc.grpcswagger.showcase.HelloService"
],
"endpoints": [
"localhost:12347"
],
"success": true
}
}
}
URL: /{rawFullMethodName}
Параметры:
rawFullMethodName
— полное имя метода gRPC, например, io.grpc.grpcswagger.showcase.HelloService.GetUser
.payload
— параметры метода gRPC в формате JSON. Для указания вызываемой конечной точки можно использовать параметр endpoint
.URL: /v2/api-docs
Возвращаемые данные используются swagger-ui.
Параметры:
io.grpc.grpcswagger.showcase.HelloService
.Благодаря проекту polyglot логика отражения в нашем проекте была изменена на polygolt.
Не стесняйтесь открывать вопросы или запросы на вытягивание. Мы будем признательны!
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )