问题标签 [fosrestbundle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
431 浏览

rest - REST POST 没有数据?

我正在尝试使用 Symfony2 创建一个 REST 服务。我关注了几篇文章,并让 GET 函数正常工作;我能够获取我的对象列表或特定对象列表。但是使用 POST 将我的对象保存到数据库中是行不通的。我正在使用 FOSRestBundle。

我创建了我的实体 Coldlead、我的表单 ColdleadType,并在控制器中创建了我的 newAction。但是,当我在 bash 上使用 curl 测试 POST 操作时,FORM 似乎没有收到任何信息。

这是我执行的命令:

回应是:

我想我错过了最后一个链接。也许与序列化程序有关。希望有人能给我一个提示。

我阅读(并尝试过)的文章是:

0 投票
2 回答
9461 浏览

symfony - 控制器必须返回一个响应,数组给定

我正在尝试遵循Will Durand关于如何使用 Symfony2 设置良好的 REST API 的教程。但是,当我收到此错误时,我一开始就失败了:

我的基本配置肯定有一些基本问题。我尝试了不同的fos_rest配置设置,但配置参考并没有提供非常有用的帮助,因为我并不真正了解单个设置的作用。

我的设置:

我的 API 应该根据接受标头返回 XML 或 JSON。永远不会有 html 输出。

0 投票
2 回答
12810 浏览

php - FOSRestBundle 和 JMS 序列化器,获取 JSON 时出错

我一直在尝试 Symfony 2.2、FOSRest Bundle(使用 JMS Serializer)和使用 MongoDB 的 Doctrine ODM。

经过数小时试图弄清楚如何正确设置 FOSRest Bundle 后,我仍然遇到了一些麻烦:我有一个非常简单的路线,可以返回产品和价格列表。每当我请求 HTML 格式时,我都会得到正确的响应,但如果我请求任何其他格式(JSON、XML),我会收到错误消息:

你可以在这里看到完整的错误信息

我当前的设置非常简单:我创建了一个到控制器的路由,该控制器返回产品列表和价格(我按照这个示例创建了产品文档)。

这是路线:

这是控制器:

这是从控制器 Resources/Product/get.html.twig 调用的视图:

有什么想法为什么这对一种格式可以正常工作,而其他格式不能正常工作?我应该设置什么额外的东西吗?

更新: 这是我一直在使用的配置值。在 app/config/config.yml 结束时,我有这个:

解决方法:

做更多的研究我遇到了另一个错误,这导致我提出这个问题和答案:

https://stackoverflow.com/a/14030646/155248

Doctrine\ODM\MongoDB\LoggableCursor一旦我通过将每个结果添加到这样的数组中来摆脱它:

我开始以正确的格式获得结果。这是一种蹩脚的解决方案,仍然希望找到更好的解决方案。

0 投票
1 回答
2708 浏览

php - FOSRestBundle 视图注释不起作用

config.yml:

annotated controller:

.json如果我使用它返回的格式访问路由:

但它不会将状态代码更改为注释中的状态代码。

同样没有指定格式,它不会回退到默认.json格式,它仍然会搜索模板。

0 投票
3 回答
2686 浏览

rest - REST API 和客户端在同一台服务器上,需要 API 身份验证吗?

首先,让我描述一下这个应用程序:我们正在开发一个基于 Web 的软件,它是某种定制的帮助台应用程序。它需要用户登录(我们使用FOSUserBundle)。登录后,用户被重定向到仪表板。从仪表板不再需要重新加载页面,前端是基于 Angularjs 构建的,用户可以在应用程序中的任何地方访问,而无需重新加载页面。您可以说是单页应用程序。

因此,呈现给用户的数据是从 rest api 获取的(我们使用FOSRestBundle)。这在这一点上工作得很好。

有某种困境。只有我们的员工才能访问此应用程序(目前)。因此,工作人员需要登录才能访问帮助台。通过angularjs推送到前端的数据是通过api调用的,所以刚刚登录的用户每次请求都需要重新认证,因为休息。

问题:由于后端运行在 symfony2 上,让我们在进行 api 调用时尝试获取当前登录用户的用户对象:

匿名返回。代表匿名,或

只返回null

因此,使用 rest api 时,经过身份验证的上下文似乎消失了。但是,当我直接调用一个动作而不休息时,我可以获得用户信息。

所以我们需要的是保护我们的 rest api 并在每次 api 调用时获取用户信息。我们不希望第三方人员访问我们的应用程序,只有员工。我不熟悉 OAuth,但用户将被重定向到第三方页面以允许/拒绝访问他的数据?这对我们来说不是一个选择。

根据该信息,您对如何保护 api 和传输用户数据以使 getUser 不返回 null 或 anon 有任何建议或想法。但实际登录的用户?

0 投票
1 回答
3839 浏览

php - JMSSerializer 和 FOSRestBundle - 注释不起作用。“不存在”

我正在尝试使用 ExclusionPolicy,但是我不断收到“注释不存在或无法自动加载”错误。

这是抛出的确切错误:

[语义错误] Acme\DemoBundle\Entity\Attributes 类中的注释“@JMS\SerializerBundle\Annotation\ExclusionPolicy”不存在,或者无法自动加载。

我的代码如下:

0 投票
1 回答
1662 浏览

rest - 将用户 ID 与任何 REST API 调用一起发送?

我正在使用后端的 symfony2 + FosRestBundle 和前端的 angularjs 构建一个应用程序。它是一个单页应用程序。后端和客户端(使用来自 rest api/后端的数据)在同一台服务器上。

登录后,用户可以创建/编辑/删除数据(保持简单)。由于后端是无状态的,我无法使用 symfony2 在服务器上创建任何类型的身份验证上下文,因此我无法在 api 调用中获取用户 ID。

因此,在登录时,我创建了一个令牌并将其保存在客户端应用程序的根范围内。现在关于问题。由于登录用户正在操作数据,例如编辑帖子或将帖子从已发布更改为未发布,我需要将用户 ID 与 api 调用一起传递。但似乎某些请求类型仅限于参数,例如

您可以在此处找到有关 REST 操作的更多信息https://github.com/FriendsOfSymfony/FOSRestBundle/blob/master/Resources/doc/5-automatic-route-generation_single-restful-controller.md

那么是否可以将用户 ID 或任何其他类型的参数与 PUT/PATCH/UPDATE/DELETE 请求一起发送?还有其他建议或想法吗?我对这个问题有错误的方法吗?您将如何将用户传递给 rest api 调用?

0 投票
1 回答
1953 浏览

xml - FOSRestBundle 输出错误的 xml

当我请求 xml 时,我的 XML 输出看起来很奇怪。

控制器:

请求头: Aceept: application/xml

回应

为什么只返回结束节点而不是所有键和值?

0 投票
1 回答
330 浏览

api - API 驱动的 symfony2 项目

我试图在 symfony2 中使用FOSRestBundle.

我有APIController一个动作getDataAction().

当我从某个外部应用程序发送请求时,这非常有效。我得到了预期的 JSON 编码数据。

但是我在同一个应用程序中也需要这些数据(即同一个应用程序中的一些其他控制器)。

哪种方法合适?

  • 创建 的对象,APIController然后对其调用所需的操作。或者
  • 或从另一个控制器发送 CURL 请求getDataAction()APIController获取数据。
0 投票
1 回答
1429 浏览

jquery - symfony2 / FOSRestBundle: No HTTP status codes

I want to access a REST webservice which is provided by symfony2 and FOSRestBundle. I use HTTP Base Authentication. Unfortunately i cannot figure out, how to get the HTTP codes 401 and 403 back, if the authentication stuff is not (correct) provided.

This is how i call the service with jquery/AJAX:

Neither the 'done' nor the 'fail' function is executed when i provide wrong or none Authorization data.

Even with this stuff (in the same file as where i place the above AJAX call) i can't get any error message or status code:

This is my FOSRestBundle configuration in symfonys config.yml:

security.yml:

Guess you see, that i have tried some stuff (e.g. the last two lines). But right now i am stuck and don't know where to start debugging.

How can i receive the HTTP status codes when Authentication is needed or when it fails?

Any help would be appreciated :-)