'google/protobuf/struct.proto'가 GRPC를 통해 동적 JSON을 전송하는 최적의 방법인가요?
배경:
GRPC 서버와 클라이언트(둘 다)를 구현했습니다. Go에서) 그리고 "golang/protobuf/struct"를 사용하는 것이 동적 JSON 데이터를 전달하는 가장 효율적인 전략인지에 대한 지침을 구하고 있습니다.
해결책:
기반 제공된 "User.proto" 파일에서 "google.protobuf.Struct"를 활용하면 소리가 나는 것 같습니다. 접근합니다.
대체 솔루션:
1. 사용자 정의 Protobuf 구조체**
proto 파일 내의 구조체로 "세부 정보"를 정의하는 것이 제안되었지만 이 접근 방식에는 추가 코드 생성 및 유지 관리가 필요하므로 번거로울 수 있습니다.
2. JSON 변환 및 캡슐화
GRPC 전송 이전에는 "Details" 맵을 JSON 형식으로 변환하고 이를 protobuf 메시지로 캡슐화한 후 서버 측에서 역직렬화하는 것도 또 다른 옵션이었습니다. 그러나 여기에는 추가 처리가 필요하며 사전 구축된 "Struct" 유형을 사용하는 것보다 효율성이 떨어집니다.
Anuj의 솔루션:
이 솔루션은 기능적이지만 다소 복잡하며 다음을 포함합니다. 수동 JSON 직렬화 및 역직렬화.
Luke's 해결책:
이 대안은 간결하지만 여전히 필요 이상으로 많은 변환을 수반하며 지도 데이터를 여러 형식으로 전환합니다.
최적 접근 방식:
Go에 도입된 "structpb" 패키지를 활용하는 솔루션은 protobuf 생성을 단순화합니다. 표준 Go 지도의 "구조체" 인스턴스. 이 방법은 다음과 같은 이점을 제공합니다.
이 접근 방식은 "structpb.NewStruct" 함수를 사용하여 지도에서 "구조체"가 직접 인스턴스화되는 client.go 파일에 제공된 예제와 일치합니다.
위 내용은 Go에서 `google.protobuf.Struct`가 gRPC를 통해 동적 JSON 데이터를 보내는 가장 효율적인 방법인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!