フロントエンドに AngularJS を使用し、Symfony2 のバックエンドに使用する Web アプリケーションに取り組んでいます。1 ページのアプリを作成できるように、Web サービスを作成したいと考えています。2 つのレイヤー間のデータ交換をどのように処理すればよいか疑問に思っています。
次の使用例を検討してください。
ユーザーは、アプリケーションでプロジェクトを作成したいと考えており、そのプロジェクトの顧客またはサプライヤーのどちらであるかを指定する必要があります。プロジェクトの作成者は、プロジェクトに名前と説明を付けます。次に、連絡担当者 (プロジェクトを作成したユーザーの選択に応じて、プロジェクトの顧客またはサプライヤーになります) の電子メール アドレスを入力します。プロジェクトを作成するとき、システムは担当者がすでに登録されているかどうかをチェックします。そうでない場合は、アプリケーションに参加するための招待状を送信して待機します。後で行うことができるプロジェクトの作成時に担当者を招待する必要はありません。
APIは次のようになると思います:
POST http://app.com/api/projects
Request:
{
"name": "My Project"
"descrption": "My Project'description"
"vendor": {
"user_id": 3245
}
"client": "myclient@email.com"
}
Response:
{
"name": "My Project"
"description": "My Project'description"
"vendor": {
"user_id": 3245,
"name": "John Doe"
}
"client": {
"user_id": 2754,
"name": "Peter Doe"
}
"creator": {
"user_id": 3245,
"name": "John Doe"
}
}
したがって、プロジェクトの作成時に交換されるデータのタイプが異なることがわかります。
モデル アプリケーションに直接リンクできますか (もちろん検証後)?
プロジェクトを更新するにはどうすればよいですか?
転送オブジェクトを作成し、ビジネス ロジックに管理し、入力用に TransfertObject を、出力用に 1 つ作成する方がよいでしょうか?