問題タブ [grpc-go]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - go モデルを .proto ファイルに正しくインポートする方法
私は現在、protobuf を使用して、残りの API ベースの go サービスを gRPC に移行する作業を行っています。私はインターネットからいくつかの例を使用しています。私のservice.protoファイルは次のようなものです
与えられたスニペットでは、すべてのリクエストとレスポンスを同じ .proto ファイルで定義していることがわかります。
これらをプロジェクト全体で使用できるように、これらを別の go ファイルで定義したいと考えています。その CreateRequest モデルも使用できるので、同じモデルを 2 回定義する必要はありません。
1)これを行うことは可能ですか?
2) はいの場合、正しい構文は何ですか?
私はこれに慣れていないので、質問がばかげているように見える場合は、大笑いして忘れてください。
go - GRPC でのエラー応答の適切な方法は?
grpc を介してサーバー エラーを報告する方法を見つけようとしています。私が達成したいのは、実際に何が起こったのかをクライアントに伝えるのに十分な、冗長で静的に定義されたエラーです。
次のリクエストがあるとします。
次に、ステータス コードはクライアントにエラーの詳細を通知しないため、エラーをより詳細にしようとしていました。を使用できますFieldViolation
が、静的な方法でのエラーではなく、フィールドのみを指定します。Description
これらを提供することもできますFieldViolations
が、クライアントは文字列エラーを処理して何らかの方法で内部クライアント エラーにマップするか、クライアントがこれらのエラーを直接表示する必要があります。これは、ビジネス ロジックがエラー タイプに基づいて異なる可能性があるため、場合によっては機能しません。
私が発明したのは:
このようにして、ステータス コードと組み合わせて特定のエラーをクライアントに知らせることができますが、すぐに使用できるものは使用されず、FieldViolations
エラーを処理する方法は grpc 以外のように見えます。
他の解決策は、json にエラー コード (リクエスト エンティティ内で定義することもできます) とエラー メッセージをFieldViolations
's内に埋め込むことですDescription
が、これも grpc 以外の方法のように見えます。
grpc でエラーが発生して困っています。適切な方法を教えてください。
ありがとう。