1

私のシナリオは次です。私が知りたいのは、コードを設計して整理するための良い方法です。

一部のデータを取得または保存できる REST API があります。モデルを表す Entity クラスのセットがありますが、いつものように、API が送受信する JSON オブジェクトには、Entity クラスと同じ属性がありません。例えば:

Person (id, name, creationDate, lastModifDate)

ユーザーが ID=10 の Person を要求したときに、属性を返したくありませんlastModifDate

私は、API が改訂/送信する JSON オブジェクトとエンティティ モデルの間に、ある種の「トランスフォーマ」または「コンバータ」を作成することを考えています。

どの戦略をお勧めしますか?

  • DataTransformer ですが、フォームは使いたくありません
  • ParamConverter、データが送信されるのではなく、受信されたデータにのみ役立ちます。
  • エンティティを表す DTO または VO を作成し (望ましくない属性を返すことなく)、次のことを行う「コンバーター」クラス (DataTransformer に類似) を作成します。
    • JSON データから VO に、VO から Entity に変換します。
    • エンティティから VO へ、VO から JSON データへの変換。

アドバイスや提案をいただければ幸いです。

4

1 に答える 1

1

FOSRestBundleを使用すると、FormTypes とフォーム コンポーネント全体を入力変換に使用できます。フォーム タイプのフィールドは、ユーザーが POST/PUT 経由で送信できるフィールドを定義します。Web フォームと同じです。

出力には、JMSSerializerBundle を serilisationGroups とともに使用します (ビュー リスナーの FOSRestBundle でもサポートされます)。

そして、この優れたブログ投稿を見てください: Symfony2 を使用した REST API: 正しい方法

于 2013-09-09T17:44:22.323 に答える