使用 REST API 持久化实体

2024-02-04

对于 Symfony2 中的项目,我需要能够使用外部 RESTful API 而不是数据库来保存/检索实体。由于 Doctrine 将实体映射到数据库表的一行,因此我认为创建从实体到外部 API 的映射也应该很容易。然而,这对我来说是新的,我似乎找不到任何关于此的描述/教程。 (也许我错过了适合我的 Google-fu 的词)

我希望有一个类似于 Doctrine 的解决方案。我不想使用基于 ActiveRecord 模式的东西,因为我希望将持久性逻辑与实体分开。实体不应该知道它是如何持久化的。

我希望能够做类似的事情:

$entity = new Entity();

$em = $this->getREST()->getManager(); // get REST Entity Manager
$em->persist($entity); // save the entity using a POST request
$em->flush();

和这个:

$em = $this->getREST()->getManager(); // get REST Entity Manager

// retrieve the entity using a GET request
$entity = $em->getRepository('AcmeDemoBundle:Entity')->find($id);

和这个:

$em = $this->getREST()->getManager(); // get REST Entity Manager

// retrieve all entities using a GET request
$entities = $em->getRepository('AcmeDemoBundle:Entity')->findAll();

换句话说,如果语法能够与 Doctrine 几乎相同那就太好了。

此外,我想在外部文件(例如 YAML)中配置映射,而不是通过实体中的注释来配置。 (正如我所说,实体不应该知道它们是如何持久化的)

被遗忘者 https://stackoverflow.com/a/20382774/1001110已经提到了几个解决方案,但它们并不能完全满足我的要求,我希望会有更多的解决方案,因为我确信我不是第一个必须解决这个问题的人。

有人能指出我正确的方向吗?


Well Circle 为 Doctrine 构建了完整的 REST 驱动程序,这意味着您可以使用完全相同的语法,因为它是 Doctrine 充当 REST 客户端:

https://github.com/CircleOfNice/DoctrineRestDriver https://github.com/CircleOfNice/DoctrineRestDriver

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 REST API 持久化实体 的相关文章

随机推荐

  • “VisualTree”被设置多次

    我在这个 xaml 文件中不断收到错误 属性 VisualTree 被设置多次
  • 两个视图 多个 UIPickerViews 单个出口

    我的应用程序有两个视图 具体取决于它决定加载哪个视图的方向 但是IB不允许我将两个PickerView连接到同一个OUTLET 有没有一种方法可以在代码中分配连接 以便在加载视图时将连接分配给outlet 或者我应该为每个视图做两次 或者我
  • 异常:ASP.NET MVC 控制器中的“值不在预期范围内”[重复]

    这个问题在这里已经有答案了 我有这个字符串要格式化 并且该部分抛出异常 字符串主体 private Task SendEmailConfirmation UserModel user var emailService new EmailUn
  • 执行特定的 Maven 阶段

    有没有办法执行 Maven 构建中的特定阶段 例如 如果我只想运行那些在预集成阶段执行的插件 Maven 是否提供了一种方法来做到这一点 e g mvn pre integration phase 您不能调用生命周期阶段本身 但可以调用绑定
  • 如何在后面的代码中添加两个CSS Class来控制?

    我在 ASP NET 后面的代码中设置 2 个 css 类 我可以这样做 txtBox Attributes Add class myClass1 txtBox Attributes Add class myClass2 它总是应用一个类
  • 无法更新 RVM - “致命:无法找到‘http’的远程帮助程序”

    我在 Ubuntu 8 04 上运行 RVM 1 1 6 突然无法再更新到最新版本 rvm get head Original installed RVM version rvm 1 1 6 by Wayne E Seguin email
  • 如何在 Matplotlib 中的绘图内绘制轴线?

    当我使用 Matplotlib 绘制数据时 默认情况下 轴始终绘制为框架图的框 假设我正在轴限制内绘制数据 2 lt x lt 2 and 2 lt y lt 2 但我想通过原点在该绘图区域内绘制轴线 最好沿着这些轴线绘制刻度线和刻度标签
  • AutoMapper null 源值和自定义类型转换器,无法映射?

    当将自定义类型转换器 ITypeConverter 与 AutoMapper 一起使用时 如果源值为null e g Mapper CreateMap
  • Python 类型在方法中暗示自己的类

    Edit 我注意到人们评论说类型提示不应该与 eq 当然 不应该 但这不是我问题的重点 我的问题是why该类不能用作方法中的类型提示参数 但可以在方法中使用itself 事实证明 Python 类型提示对我使用 PyCharm 时非常有用
  • java中这个说法正确吗?

    我想使用数据报套接字在两台计算机之间进行数据传输 我使用以下行 host InetAddress getByAddress mypc new byte 192 168 1 110 但是当我使用上述语句时 我收到此错误 可能会损失精度 所以我
  • 相当于: git log --exclude-author?

    在工作中 我们有一个 git 存储库 其中大部分提交都是机器人用户自动提交的 有时我更喜欢查看该存储库中的 git 日志 但看不到自动提交 我想它可以被描述为倒置的 git log author 或 git log exclude auth
  • 从 iPhone 上的视频输出获取静态图像?

    我正在编写一个应用程序来显示 iPhone 相机所看到的光照条件的统计数据 我每秒拍摄一张图像 并对其进行计算 为了捕获图像 我使用以下方法 void captureNow AVCaptureConnection videoConnecti
  • 使用 hiera 设置类参数?

    我试图弄清楚如何使用 hiera 设置类参数的值 我正在使用两个简单的类进行测试 testhiera 和 testhiera2 以下是这些课程 root puppet el7 001 modules cat testhiera manife
  • Xcode 上 Playground 的默认目录

    当我使用 Xcode 10 1 创建新的 Playground 时 它始终默认为 Library Autosave Information 我有什么办法可以改变这个吗 解决方法与symlink Close XCode gt 在终端中输入 m
  • Android Room类型转换多种枚举类型

    我正在为我的 Room 数据库编写一个类型转换器 我有几个自定义枚举类 我想在存储在数据库中时将它们全部转换为其序数 那么 有没有办法简化它 例如传递通用枚举类型 而不是为每个单独的类编写以下内容 class Converter TypeC
  • 哪个 ember.js 组件负责将模板插入到 DOM 中?

    我正在构建ember js rails应用程序 所有车把模板都存储在 js 文件中 我想了解当路由器更改状态时它们如何插入到 DOM 中 Ember 的哪一部分执行此操作 我如何告诉 ember 放置模板 现在我只能将我的模板附加到我有一个
  • Angular 4未加载组件

    我尝试在 Angular 4 应用程序中使用 Angular 路由 但该应用程序无法加载与请求的路由匹配的组件 Here is app routing module ts import NgModule from angular core
  • 有没有快速的算法来删除字符串中的重复子串?

    有一个类似的字符串 dxabcabcyyyydxycxcxz 我想将它合并到 dxabcydxycxz 其他例子 ddxddx gt dxdx abbab gt abab 规则是 if adjacent and same merge Suc
  • 从 StringIO 读取直到遇到某个字节的快速方法

    假设我有一些StringIO from cStringIO 我想从中读取缓冲区 直到遇到某个字符 字节 例如 Z 所以 stringio StringIO ABCZ123 buf read until stringio Z buf is n
  • 使用 REST API 持久化实体

    对于 Symfony2 中的项目 我需要能够使用外部 RESTful API 而不是数据库来保存 检索实体 由于 Doctrine 将实体映射到数据库表的一行 因此我认为创建从实体到外部 API 的映射也应该很容易 然而 这对我来说是新的