2017-02-11 10 views
3

私はJavaでLagomを使い始めており、カスタム(デ)シリアライザを書く必要があります。私は文書を読んで、NegotiatedSerializer、MessageSerializer、SerializerFactoryなどの役割を理解しました。私が理解していないのは、どのパッケージにクラスを定義するのが正式なのかです。私はChirperのサンプルを見て、さまざまな* APIモジュールの* Serviceインターフェイスの横に具体的なモデル定義があることがよくありますが、カスタムシリアライザの例はありません。助けてくれてありがとう!Lagomでカスタム(デ)シリアライザをどこで定義しますか?

答えて

2

メッセージ(リクエスト本文、レスポンスボディ、およびトピックに公開されたメッセージ)のシリアライザは、サービスのapiモジュールの一部である必要があります。シリアライザは、サービスのクライアントとサービスの実装自体の両方で使用する必要があります。これにより、サービスインタフェースまたはAPIの一部になります。

各サービスのimplモジュールで永続性(コマンドと応答、持続イベント、エンティティの状態)のシリアライザを定義する必要があります。これらは内部実装の詳細であり、クライアントに公開すべきではありません。

これらの広範なガイドライン以外にも、パッケージ構造を整理する方法は、あなた次第です。一部のプロジェクトでは、API用に1つのパッケージを使用し、実装には別のパッケージを使用します。他の人は、それぞれをサブパッケージに分けるかもしれませんが、サービスは一般的にはかなり小さくて集中しているはずですが、これは過度のものかもしれません。プロジェクトと組織に合った方法でパッケージを整理する必要があります。

+0

ありがとうございます、それは理にかなっています! –

関連する問題