如何使用 FosRestBundle 公开函数结果?

2024-01-18

我正在使用 Symfony2 和 FosRestBundle 为我们的系统开发 REST API。 FosRestBundle 是一个非常好的工具,但它似乎有一个限制:只有属性(私有、受保护和公共)可以暴露给 API。

我想公开一个基于其他两个字段(例如全名=firstName+lastName)计算的派生属性以及描述关系的属性(例如产品的类别名称而不是产品的类别ID)

然而@Expose注解只能作用于属性。

我尝试创建一个虚拟属性,在构造函数中设置该属性(在创建新属性时有效)并在 Doctrine 生命周期 postLoad 事件处理程序中设置该属性(在从数据库加载时有效)并且它正在工作。但我不喜欢这种方法,因为即使 API 不使用实体类,它也会产生开销和额外的编码。

我想知道是否有更好的方法来实现这一目标。


您可以使用虚拟属性将函数返回的值作为虚拟属性返回,您可以在以下位置找到更多信息http://jmsyst.com/libs/serializer/master/reference/annotations#virtualproperty http://jmsyst.com/libs/serializer/master/reference/annotations#virtualproperty

/**
 *
 * @VirtualProperty()
 * @SerializedName("fullName")
 */
public function getName()
{
    // return name;
}

因此,当 this 对象被序列化时,它将返回一个具有 fullName 属性的对象,该属性是 getName 函数返回的值。

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

如何使用 FosRestBundle 公开函数结果? 的相关文章

  • Symfony 2 SecurityContext 类已弃用

    当我尝试访问 symfony demo 上的 app example 时 出现以下错误 错误 Symfony Component Security Core SecurityContext 类是 自 2 6 版本起已弃用 并将在 3 0 中
  • 如何使用 Elastica Search 和 Symfony2 执行嵌套查询

    我有一个食谱实体 其中有一些标签 多对多映射 我想按标签搜索食谱 这是我的食谱实体 ORM Entity ORM Table name recipes ORM HasLifecycleCallbacks ExclusionPolicy al
  • Doctrine 自动递增起始值@ORM\GenelatedValue

    如何使用注释设置自动递增 id 的起始值 我希望它从 250000 开始 ORM Id ORM GeneratedValue ORM Column type integer protected id ORM Id ORM Generated
  • 如何访问 NFL 的 API?

    我一直在尝试访问或设法访问 NFL com 的数据 但尚未找到 这些网站上有公开文档 https api nfl com docs identity oauth2 index html 但这些文档不会告诉您如何获取客户端 ID 或客户端密钥
  • Symfony2:间歇性高响应时间/缓慢 SessionHandlerProxy::read() 完成

    我看到来自 Symfony2 会话管理器组件的非常奇怪的行为 特别是 SessionHandlerProxy read 函数在我的生产环境中有时会非常慢 Symfony Component HttpFoundation Session St
  • 在 symfony 2.1 中安装并运行 LiipImagineBundle

    以下是我遵循的步骤 在我的composer json中添加了以下内容 require imagine Imagine gt 0 2 8 liip imagine bundle dev 在命令行中运行以下命令 composer update
  • Symfony Finder 忽略以点开头的文件

    我使用 Finder 发送假脱机电子邮件 但自动名称生成器会在文件名中添加点 有时它们会出现在文件的开头 似乎查找器无法获取具有该名称的文件 那么这些文件是隐藏的 有人经历过这种行为吗 有什么建议如何使用查找器来查找隐藏文件吗 Thx 刚刚
  • 从 Office 365 日历获取所有事件

    我需要获取 Office 365 日历中的所有事件 当前 GET 请求 https graph microsoft com v1 0 users https graph microsoft com v1 0 users userPrinci
  • aws eb deploy 不加载环境变量

    我正在通过 eb deploy 将 symfony 项目部署到 ec2 实例 aws linux 2 部署后迁移脚本运行良好 但当我尝试使用 ec2 user 运行 symfony 命令时 出现有关数据库凭据错误的错误 这是因为我推送了带有
  • 如何触发应用程序通过 REST 服务获取数据?

    我正在寻找一种方法来触发应用程序从远程 REST 服务获取数据 该方法不需要轮询 iOS 推送通知似乎不是一个选项 因为它可以被用户停用 然而 我可能是错的 是否有最佳实践来完成此任务 实际上 推送通知是可行的方法 在 ios8 及更高版本
  • PHP:在 CURL GET 调用中使用 API 密钥

    我看过关于使用 api 密钥在curl 中验证 post 调用的帖子 我有一个 GET 调用 需要 apikey 进行授权 即请求必须具有包含 apiKey 的授权标头 我已经获得了 api 密钥并尝试将其用于 GET 调用
  • RESTful API:仅用于验证的方法/标头组合

    我希望我的 API 有一个仅验证请求 例如 如果我有一个 URL 例如 http api somesite com users 12345 用户正在客户端上填写一份信息表单 我最终会将其修补 放置 发布到该资源 当用户填写表单时 我可能希望
  • 使用 Post 以 REST 方式更新值

    我对 REST 很陌生 所以如果这是一个愚蠢的问题 请原谅我 这样 我就有了客户资源 一个客户有很多信用 所以 我想获取客户积分的 URL 是 客户 21 积分 其中 21 是客户 ID 现在 如果我没有全额积分 如何添加积分 例如 客户有
  • 外部依赖错误的 HTTP 状态代码

    当服务器与外部 API 通信出现问题时 返回的正确 HTTP 状态代码是什么 假设客户端向我的服务器 A 发送有效请求 然后 A 查询服务器 B 的 API 以便执行某些操作 然而 B 的 API 当前抛出 500 错误或因某种原因无法访问
  • 使用 JWT 创建 PostMan GET 请求

    我是 PostMan 的新手 通常我使用curl 这是获得 JTW 的一个 curl X POST H X Requested With XMLHttpRequest H Content Type application json H Ca
  • 如何从 Android 调用 RESTful 方法?

    我尝试了两种不同的方法来从 Android 调用简单的 REST 方法 所述 REST 方法 适用于其他客户端 仅返回一个 int val 例如 17 以下两次尝试都是基于我在网上找到的代码 有一种是这样的 公共无效onFetchBtnCl
  • 更改 WhiteOctober TCPDF 捆绑包配置值

    我已经开始在我的 symfony 项目中使用 WhiteOctober TCPDF 包 但我不知道如何更改默认配置值 例如页面格式 我尝试将其放入我的 config yml 中 white october tcpdf tcpdf k tcp
  • Sonata DateTimePickerType 类默认日期显示错误的日期时间格式

    我陷入困境 我不知道如何使用 sonata DateTimePickerType 类正确设置默认日期和时间 我尝试了不同的方法 但到目前为止 没有一种方法没有帮助 在下面的截图中 help 键显示正确的日期和时间 但是当我使用 dp 默认日
  • 在 Angular 中让多个调用等待同一个 Promise

    我在一个页面上有多个使用相同服务的控制器 为了举例 我们将服务称为 USER 第一次调用 USER getUser 时 它会发出 http 请求来获取有关用户的数据 调用完成后 它将数据存储在 USER data 中 如果再次调用 USER
  • 在 Postman 中连接 ECONNREFUSED

    我试图通过邮递员测试我的 REST API 但收到以下错误 这是我编写的第一个 REST API 我对邮差很陌生 所以不确定我做错了什么 下面是我尝试使用此 URL 在邮递员中调用的代码 我在 URL 中传递两个日期参数 https loc

随机推荐

  • 传递引用类型对象并更改值

    我正在尝试将引用类型对象传递到方法中并从那里更改它 当我更改它时 传递给方法的变量没有更改 这是示例 public interface IPerson string Name get public class Teacher IPerson
  • Android Studio“构建”选项卡没有指向文件和行的链接?

    如何启用它以便每个编译时错误都带有指向文件和行的链接 我的同事也是这样 在我的 IDE 上似乎有些东西被禁用了 我找不到什么和在哪里 帮助 None
  • PyCharm 中针对 Python 编译扩展的自动完成

    当使用编译扩展 例如 OpenCV Python 绑定 编写 Python 代码时 PyCharm 似乎不知道它们的可用性 导入标有灰色下划线 作为工具提示显示 未解析的引用 并且自动完成功能也不起作用 代码中已使用的函数名称除外 这不是由
  • 使用 TreeView 最小化 ViewState

    关于如何做到这一点有任何实用的提示 技巧吗 似乎没有很多关于如何做到这一点的信息 我正在将数据从数据库加载到 TreeView 中 最大节点数约为 100 我仍然对最小化 ViewState 感兴趣 我还将动态添加和删除节点 通过用户交互
  • MSQLSMS 中蓝色和粉色单词的含义

    Microsoft SQL Management Studio 突出显示了一些特殊单词 并用蓝色或粉红色将它们着色 我想知道哪个规则决定了要使用的颜色 例如 考虑以下两个语句 SELECT FROM myTable UPDATE myTab
  • 由于某种原因无法从 p 标签获取文本 - Selenium (Python)

    我正在尝试用 Selenium 抓取页面 示例 HTML 如下所示 来自查看页面源代码 div class col s12 m12 l4 xl4 therapist contact list p class col s6 m6 l6 xl6
  • 停止 jquery 循环插件

    我正在使用cycle jquery 插件 我有一些淡入淡出的图像 希望它在循环结束时停止在最后一张图像上 有谁知道一个好方法来做到这一点 谢谢
  • ASCII 到光栅的转换

    我正在使用以下代码打开单波段光栅图像 带有温度值 library raster nrows 764 ncols 1022 df1 lt read table AA092800 1 asc skip 11 header FALSE sep t
  • Flask 静态文件路由中的变量 [url_for('static', filename='')] [重复]

    这个问题在这里已经有答案了 我正在制作一个简单的音乐应用程序 我想允许用户上传他们的音频文件 并且我有一个页面 我计划在其中显示所有歌曲 我创建了一个模板 结构如下 for song in songs div class chart ite
  • 使用自定义日期初始化 NSDate

    我正在寻找类似的东西 NSDate date NSDate alloc initWithYear 1984 month 10 Day 8 有没有办法做这样的事情 Thanks 我为此任务编写了一个类别 NSDate 缺少很多有用的方法 in
  • android 中如何检测用户存在?

    我知道在 Galaxy Samsung SIII 中可以在设置中配置一个选项 以避免用户在查看屏幕时屏幕关闭 我认为手机使用摄像头或某种存在传感器 是否可以通过编程来完成 即使可以 某些设备也无法做到这一点 我在这里想象一些可能性 使用相机
  • 如何自动更新使用 Inno Setup 安装的应用程序

    我有一个适用于 Windows 的可执行应用程序 setup exe 是我使用基于 Java 的 Launch4j Inno Setup 实现的 我经常频繁发布新版本和错误修复 我想知道是否有自动安装更新的机制 Inno Setup 没有任
  • 主机名的有效字符?

    主机名的有效字符是什么 这类似于联网计算机或网络域 具体来说 我正在编写一个连接到远程服务器的 PC 游戏 所以我有一个主机名字段和一个端口字段 显然 端口是短范围内的数字 但我需要知道所有可能的主机名字符是什么 以及可能需要的任何其他模式
  • DocumentDB REST API - 授权令牌错误

    Problem 每当我们请求列表或查询时 我们都会看到从 DocumentDB REST API 返回此错误 但当我们按名称 ID 获取对象时则不会 输入的授权令牌无法满足请求 请检查预期的有效负载是否按照协议构建 并检查正在使用的密钥 背
  • 使用 PLSQL 发送电子邮件

    我想使用 PL SQL 通过 gmail 或 yahoo 主机发送电子邮件 我在 google 中搜索并找到 SMT Mail 包 但它对我不起作用 请问有人可以指导我如何实现这一目标吗 CREATE OR REPLACE PROCEDUR
  • IE 10 和 11 使固定背景在使用鼠标滚轮滚动时跳跃

    当您在 Windows 8 中滚动鼠标滚轮时 固定的背景图像会疯狂地弹跳 这仅影响 IE 10 和 IE 11 这会影响以下元素position fixed以及 这是一个具有固定背景图像的示例 http www catcubed com t
  • Celery 任务优先级

    我想使用 Celery 管理任务 我想要一个任务队列 并发性为1 并且能够将任务推送到具有不同优先级的队列中 这样优先级较高的任务将抢占其他任务 我将三个任务添加到队列中 如下所示 添加任务 py from tasks import exa
  • 可变长度数组类型的 Sizeof 运算符

    根据参考参数 http en cppreference com w c language sizeof 如果类型为表达 is a 变长数组 type 表达被评估并计算其求值的数组的大小 在运行时 这意味着 如果类型表达是一个VLA类型 那么
  • jsp缓存标签库

    我想缓存 JSP 页面的某些部分 因为渲染起来很繁重 整个页面无法缓存 因为它包含用户特定的内容 但大部分页面可以 我认为最好的解决方案是创建一个 JSP 缓存标记 似乎有几种解决方案 但大多数项目都已死亡或被放弃 http www ope
  • 如何使用 FosRestBundle 公开函数结果?

    我正在使用 Symfony2 和 FosRestBundle 为我们的系统开发 REST API FosRestBundle 是一个非常好的工具 但它似乎有一个限制 只有属性 私有 受保护和公共 可以暴露给 API 我想公开一个基于其他两个