Web services 如何为HTTP或REST API的相同属性处理不同的数据类型
我在一个web应用程序上工作,前端使用AngularJS,后端使用Symfony2。我想做一个网络服务,这样我就可以有一个单页的应用程序。我想知道我应该如何处理两层之间的数据交换 考虑这个用例: 用户希望在应用程序中创建项目,并且必须指定该项目中的客户还是供应商。项目的创建者为项目提供名称和描述。然后,他输入联系人的电子邮件地址(根据创建项目的用户的选择,联系人将是项目中的客户或供应商)。创建项目时,系统会检查联系人是否已注册,否则会发送加入应用程序的邀请并等待。在创建项目时,不必邀请联系人,该项目可以在以后完成 我认为API如下所示:Web services 如何为HTTP或REST API的相同属性处理不同的数据类型,web-services,rest,symfony,fosrestbundle,Web Services,Rest,Symfony,Fosrestbundle,我在一个web应用程序上工作,前端使用AngularJS,后端使用Symfony2。我想做一个网络服务,这样我就可以有一个单页的应用程序。我想知道我应该如何处理两层之间的数据交换 考虑这个用例: 用户希望在应用程序中创建项目,并且必须指定该项目中的客户还是供应商。项目的创建者为项目提供名称和描述。然后,他输入联系人的电子邮件地址(根据创建项目的用户的选择,联系人将是项目中的客户或供应商)。创建项目时,系统会检查联系人是否已注册,否则会发送加入应用程序的邀请并等待。在创建项目时,不必邀请联系人,该
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"
}
}
因此,我们可以看到在创建项目时交换的数据类型有所不同
我可以直接链接到我的模型应用程序吗(当然是在验证之后)
我应该如何着手更新项目
创建传输对象并将其管理到我的业务逻辑和一个用于输入、一个用于输出的TransferToObject中是否更好?看一看FOSRestBundle啊我确实知道FOSRestBundle,但这无助于决定我是否应该拥有一个具有不同参数的TransferToObject,然后直接修改我的项目实体。