私はJavaでLagomを使い始めており、カスタム(デ)シリアライザを書く必要があります。私は文書を読んで、NegotiatedSerializer、MessageSerializer、SerializerFactoryなどの役割を理解しました。私が理解していないのは、どのパッケージにクラスを定義するのが正式なのかです。私はChirperのサンプルを見て、さまざまな* APIモジュールの* Serviceインターフェイスの横に具体的なモデル定義があることがよくありますが、カスタムシリアライザの例はありません。助けてくれてありがとう!Lagomでカスタム(デ)シリアライザをどこで定義しますか?
3
A
答えて
2
メッセージ(リクエスト本文、レスポンスボディ、およびトピックに公開されたメッセージ)のシリアライザは、サービスのapi
モジュールの一部である必要があります。シリアライザは、サービスのクライアントとサービスの実装自体の両方で使用する必要があります。これにより、サービスインタフェースまたはAPIの一部になります。
各サービスのimpl
モジュールで永続性(コマンドと応答、持続イベント、エンティティの状態)のシリアライザを定義する必要があります。これらは内部実装の詳細であり、クライアントに公開すべきではありません。
これらの広範なガイドライン以外にも、パッケージ構造を整理する方法は、あなた次第です。一部のプロジェクトでは、API用に1つのパッケージを使用し、実装には別のパッケージを使用します。他の人は、それぞれをサブパッケージに分けるかもしれませんが、サービスは一般的にはかなり小さくて集中しているはずですが、これは過度のものかもしれません。プロジェクトと組織に合った方法でパッケージを整理する必要があります。
関連する問題
- 1. jaxrsがjoda.moneyタイプのカスタム(デ)シリアライザを見つけられませんでした
- 2. ActiveModelシリアライザのカスタム属性をオブジェクトパラメータで定義する方法は?
- 3. Rustでカスタム `Error`タイプをどう定義しますか?
- 4. emberシリアライザでカスタムルートjsonノードを定義します
- 5. MySQLクライアントをNode.js(Express)アプリケーションでどこで定義しますか?
- 6. カスタムXNAコンテンツプロセッサでアセット名を定義することはできますか?
- 7. InfluxDBでカスタム集計を定義することはできますか?
- 8. TFS 2017でカスタムExternalLinkFilterを定義することはできますか?
- 9. カスタム$ httpシリアライザ
- 10. カスタムJSONシリアライザ
- 11. Sunspot/solrの設定はどこで定義できますか?
- 12. どこでdjangoフォームを定義しますか?
- 13. Androidではどこにフラグメントタグを定義しますか?
- 14. CloudFoundryでカスタムDNS検索をどのように定義しますか?
- 15. Visual Studio 2008でカスタム "サラウンド"テンプレートを定義できますか?
- 16. 多重定義[...]ここで最初に定義します
- 17. Grailsでは、メソッドはどこで定義できますか?
- 18. カスタムRESTシリアライザが機能しない理由は何ですか?
- 19. Ruby - ここでの属性定義はどこですか?
- 20. カスタムBSONキー値シリアライザ
- 21. カスタムIOperationInvokerをいつどこで設定するのですか?
- 22. カスタムJson.netシリアライザ/デシリアライザを作成しますか?
- 23. Rails 3のカスタムJavaScriptイベントはどこに定義されていますか?
- 24. シリアライザでカスタム構造体でDjango RESTを使用できますか?
- 25. $(SrcDir)はどこで定義できますか?
- 26. mallocはどこでコードで定義されていますか?
- 27. 誰でもこのURIパラメータをどこで定義できますか?
- 28. web.xmlなしでカスタムJSPタグを定義することは可能です
- 29. Eloquentでカスタム属性を定義する
- 30. QGraphicsItemのどこに(0,0)を再定義できますか?
ありがとうございます、それは理にかなっています! –