Web services 如何为HTTP或REST API的相同属性处理不同的数据类型

Web services 如何为HTTP或REST API的相同属性处理不同的数据类型,web-services,rest,symfony,fosrestbundle,Web Services,Rest,Symfony,Fosrestbundle,我在一个web应用程序上工作,前端使用AngularJS,后端使用Symfony2。我想做一个网络服务,这样我就可以有一个单页的应用程序。我想知道我应该如何处理两层之间的数据交换 考虑这个用例: 用户希望在应用程序中创建项目,并且必须指定该项目中的客户还是供应商。项目的创建者为项目提供名称和描述。然后,他输入联系人的电子邮件地址(根据创建项目的用户的选择,联系人将是项目中的客户或供应商)。创建项目时,系统会检查联系人是否已注册,否则会发送加入应用程序的邀请并等待。在创建项目时,不必邀请联系人,该

我在一个web应用程序上工作,前端使用AngularJS,后端使用Symfony2。我想做一个网络服务,这样我就可以有一个单页的应用程序。我想知道我应该如何处理两层之间的数据交换

考虑这个用例:

用户希望在应用程序中创建项目,并且必须指定该项目中的客户还是供应商。项目的创建者为项目提供名称和描述。然后,他输入联系人的电子邮件地址(根据创建项目的用户的选择,联系人将是项目中的客户或供应商)。创建项目时,系统会检查联系人是否已注册,否则会发送加入应用程序的邀请并等待。在创建项目时,不必邀请联系人,该项目可以在以后完成

我认为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"
    }
}
因此,我们可以看到在创建项目时交换的数据类型有所不同

我可以直接链接到我的模型应用程序吗(当然是在验证之后)

我应该如何着手更新项目


创建传输对象并将其管理到我的业务逻辑和一个用于输入、一个用于输出的TransferToObject中是否更好?

看一看FOSRestBundle啊我确实知道FOSRestBundle,但这无助于决定我是否应该拥有一个具有不同参数的TransferToObject,然后直接修改我的项目实体。