問題タブ [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.

0 投票する
1 に答える
542 参照

go - go モデルを .proto ファイルに正しくインポートする方法

私は現在、protobuf を使用して、残りの API ベースの go サービスを gRPC に移行する作業を行っています。私はインターネットからいくつかの例を使用しています。私のservice.protoファイルは次のようなものです

与えられたスニペットでは、すべてのリクエストとレスポンスを同じ .proto ファイルで定義していることがわかります。

これらをプロジェクト全体で使用できるように、これらを別の go ファイルで定義したいと考えています。その CreateRequest モデルも使用できるので、同じモデルを 2 回定義する必要はありません。

1)これを行うことは可能ですか?

2) はいの場合、正しい構文は何ですか?

私はこれに慣れていないので、質問がばかげているように見える場合は、大笑いして忘れてください。

0 投票する
0 に答える
979 参照

go - GRPC でのエラー応答の適切な方法は?

grpc を介してサーバー エラーを報告する方法を見つけようとしています。私が達成したいのは、実際に何が起こったのかをクライアントに伝えるのに十分な、冗長で静的に定義されたエラーです。

次のリクエストがあるとします。

次に、ステータス コードはクライアントにエラーの詳細を通知しないため、エラーをより詳細にしようとしていました。を使用できますFieldViolationが、静的な方法でのエラーではなく、フィールドのみを指定します。Descriptionこれらを提供することもできますFieldViolationsが、クライアントは文字列エラーを処理して何らかの方法で内部クライアント エラーにマップするか、クライアントがこれらのエラーを直接表示する必要があります。これは、ビジネス ロジックがエラー タイプに基づいて異なる可能性があるため、場合によっては機能しません。

私が発明したのは:

このようにして、ステータス コードと組み合わせて特定のエラーをクライアントに知らせることができますが、すぐに使用できるものは使用されず、FieldViolationsエラーを処理する方法は grpc 以外のように見えます。

他の解決策は、json にエラー コード (リクエスト エンティティ内で定義することもできます) とエラー メッセージをFieldViolations's内に埋め込むことですDescriptionが、これも grpc 以外の方法のように見えます。

grpc でエラーが発生して困っています。適切な方法を教えてください。

ありがとう。