1

我的情况是下一个。我想知道的是设计和组织我的代码的好方法。

我有一个允许检索或存储一些数据的 REST API。我有一组代表我的模型的实体类,但像往常一样,API 发送或接收的 JSON 对象与实体类的属性不同。例如:

Person (id, name, creationDate, lastModifDate)

当我用户请求 ID=10 的人时,我不想返回lastModifDate属性。

我正在考虑在 API 修改/发送的 JSON 对象和我的实体模型之间创建某种“转换器”或“转换器”。

您推荐哪些策略?

  • DataTransformer,但我不想使用表单
  • ParamConverter,只对接收到的数据有用,对要发送的数据有用。
  • 创建一些代表我的实体的 DTO 或 VO(没有返回不需要的属性)并创建一些“转换器”类(类似于 DataTransformer),它们负责:
    • 从 JSON 数据转换为 VO,从 VO 转换为实体。
    • 从实体转换为 VO,从 VO 转换为 JSON 数据。

任何建议和建议将不胜感激。

4

1 回答 1

1

如果您使用FOSRestBundle,您可以使用 FormTypes 和整个表单组件进行输入转换。表单类型中的字段,定义了用户可以通过 POST/PUT 提交的字段。与 Web 表单中的相同。

对于输出,将 JMSSerializerBundle 与 serilisationGroups 一起使用(在视图侦听器中的 FOSRestBundle 中也支持)。

并查看这篇出色的博客文章:使用 Symfony2 的 REST API:正确的方式

于 2013-09-09T17:44:22.323 回答