Echolot
요청

gRPC

.proto 파일이나 서버의 리플렉션으로 설명되는 gRPC 서비스를 JSON으로 작성하고 표시되는 메시지로 호출합니다.

gRPC 요청은 서비스의 메서드 하나를 호출합니다. 메시지는 JSON으로 작성합니다. Echolot은 서비스 설명을 사용해 메시지를 인코딩하고 HTTP/2로 보내며, 응답을 호출 상태와 함께 JSON으로 보여 줍니다.

Inventory › Reserve stock: inventory.proto, Inventory 서비스, Reserve 메서드(unary), JSON 메시지가 있는 메시지 탭과 상태 OK 및 메시지 하나가 있는 응답

Alpenglow로 시험해 보기

Inventory 폴더의 요청은 localhost:50051의 gRPC 서버를 호출합니다. 서버는 문서 저장소의 examples/servers 폴더에 있습니다(bun run grpc).

gRPC 요청 만들기

파일 › 새로운 gRPC 요청을 선택하거나, 사이드바의 요청 옆 + 메뉴에서 새로운 gRPC 요청을 선택합니다. 주소는 http://localhost:50051(Alpenglow에서는 {{grpcURL}})처럼 경로 없는 서버 주소입니다.

편집기의 탭은 문서, 메시지, 헤더, 인증, 변수, 테스트, 스크립트, 설정입니다. 헤더는 호출의 메타데이터입니다. gRPC 호출은 항상 POST이므로 배지에는 메서드 대신 gRPC가 표시됩니다.

서비스 설명

메시지 탭은 서비스가 설명되어 있는 곳을 지정하는 것으로 시작합니다.

  • 작업 공간의 specs/ 폴더에 있는 .proto 파일. 예: specs/inventory.proto. import는 파일 옆에서 읽으며, 잘 알려진 google.protobuf 타입은 파일이 필요 없습니다. .proto 파일은 명세 페이지에서 추가하고 편집합니다. proto 파일을 참고하십시오.
  • 서버 리플렉션: Echolot이 서버에 서비스를 물어봅니다. 서버가 리플렉션 서비스를 제공해야 합니다. 리플렉션 호출은 요청의 헤더, 인증, 변수와 함께 요청의 주소로 갑니다.

불러오기를 선택해 서비스를 읽습니다. 그런 다음 서비스와 메서드를 고릅니다. 메서드 옆에 Echolot이 그 종류인 unary, server streaming, client streaming, bidirectional streaming을 표시합니다.

명세 페이지에서 .proto 파일로 시작하는 편이 더 빠릅니다. 개요에 모든 메서드가 나열되고, 각 메서드의 버튼이 예시 메시지가 있는 gRPC 요청을 만들어 줍니다.

메시지 작성

메시지는 protobuf의 JSON 매핑을 따르는 JSON이며 {{variables}}를 쓸 수 있습니다.

{
  "sku": "TNT-MH-2P",
  "quantity": 1,
  "order_id": "{{orderId}}"
}

예시는 메시지를 메서드 입력의 모든 필드가 예시 값으로 채워진 것으로 바꿉니다. 중첩된 메시지도 포함되며, 이를 출발점으로 삼을 수 있습니다.

JSON 매핑에서 64비트 정수는 문자열, bytes는 Base64, 열거형은 이름, 맵은 객체이며, Timestamp, Duration, FieldMask, 래퍼, Struct, Any는 일반적인 JSON 형태를 가집니다. 메시지 타입에 없는 키는 거부되므로 오타가 그냥 지나가지 않습니다.

호출 종류

종류작성하는 메시지응답
UnaryJSON 객체 하나JSON 객체 하나
Server streamingJSON 객체 하나서버가 보낸 모든 메시지의 JSON 배열
Client streaming메시지의 JSON 배열JSON 객체 하나
Bidirectional streaming메시지의 JSON 배열서버가 보낸 모든 메시지의 JSON 배열

서버 스트리밍 호출인 Inventory › Watch stock에서는 메시지에 지켜볼 제품을 지정하며, 응답은 서버가 보낸 재고 수준의 목록입니다.

상태, 메타데이터, 트레일러

gRPC는 호출이 어떻게 진행되었는지를 메시지 뒤 트레일러로 도착하는 상태로 알려 줍니다. 응답 요약에 그 상태가 표시됩니다. OK는 초록색으로, 그 밖에는 NOT_FOUND (5)처럼 상태와 코드가 빨간색으로 표시되며, 받은 메시지 수와 압축 방식도 함께 나옵니다. 응답의 헤더 탭에는 응답 헤더가 표시됩니다.

테스트에서 상태를 검사하려면 테스트 탭에 gRPC 상태 검사를 추가합니다. 기본값은 OK와 같음이며 이름(NOT_FOUND)이나 코드(5)를 받습니다. 스크립트와 테스트를 참고하십시오.

압축과 기한

주소 앞의 gRPC 배지는 메뉴입니다.

  • 메시지 압축: 없음, gzip, deflate. 압축된 응답은 이 설정과 관계없이 항상 읽습니다.
  • 기한: 기한 없음, 또는 500 ms, 1 s, 5 s, 30 s. 기한은 서버에 전달되며, 기한을 넘겨 실행되는 호출은 DEADLINE_EXCEEDED로 끝납니다.

TLS와 인증서

http:// 주소는 TLS 없이 HTTP/2로 서버를 호출합니다. https:// 주소는 TLS를 사용하며 작업 공간의 인증서 규칙을 따르므로 사용자 지정 CA 인증서와 클라이언트 인증서도 동작합니다. 요청 설정을 참고하십시오.

명령줄에서

echolot grpc describe는 서버의 서비스와 메서드를 나열하고, echolot grpc call은 호출을 수행하며 상태가 OK가 아니면 종료 코드 1로 끝납니다. echolot grpc를 참고하십시오.

이 페이지에서