问题标签 [api-platform.com]

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 投票
2 回答
8337 浏览

api-platform.com - 自定义过滤器 API 平台不工作

我正在尝试在 API 平台中实现自定义或过滤器。但由于某种原因,它没有加载。在我的配置下面找到。

这是我的过滤器:

在 api_filters.yml 中:

在我的注释文件中:

最后在我的实体中:

这与此处报告的问题完全相同: https ://github.com/api-platform/core/issues/398

我没有收到任何错误,但过滤器根本不起作用。我在 Swagger 中看到了它。但是当我在 Swagger 中输入一个值时,数据库会返回所有实体。它永远不会到达 filterProperty 方法。

有人有想法吗?

0 投票
0 回答
1092 浏览

symfony - 使用 Api 安装 Symfony 4(Api 平台)

有两个文档,我都一样:

运行这个

编辑环境

添加实体 (Entity/Hello.php)

更新数据库

使用 Smyfony 服务器

但随后在我的浏览器(http://127.0.0.1:8000/)中出现了这个标准异常:

Youtube Video and Api-Plattform Docs 告诉我,当我使用 api 时,应该有一个不错的 Api-Plattform 页面。

有谁知道我在这里做错了什么?我已经尝试了几次并检查了我能找到的所有文档......

谢谢西蒙

0 投票
3 回答
419 浏览

symfony - 如何让 Symfony API GET 调用返回嵌入的 json 对象而不是 IRI

我一直在使用 Api Platform 开发 Symfony API,并自动生成了所有运行良好的端点。除了一件事,当获取带有子实体的实体时,子实体不是以 json 格式给出的,而是以 IRI 格式给出的,因此这意味着我们得到“/api/locations/1”而不是 JSON 对象。我已经尝试了几个小时,但无法弄清楚如何改变这一点。我们正在为路线和数据库关系使用注释。

0 投票
1 回答
2858 浏览

php - 使用自定义规范器修改类属性

我有一个具有 2 个属性的实体,name并且photo. 该name属性是从数据库中读取的,但我必须photo用一些其他信息填充该属性。

我已经按照文档中的编写自定义规范化器教程进行操作,并制作了自定义规范化器:

但是该photo属性没有填写所需的信息。

经过一点调试,我发现该supportsNormalization方法执行了两次(对于每个数据库元素)。如果我打印$data变量,我name第一次得到实体属性,第二次得到photo具有null值的属性。我从来没有得到整个Style实体。然后该supportsNormalitzation方法总是返回false

如何获取完整Style实体并修改其属性?

谢谢!

0 投票
0 回答
408 浏览

api-platform.com - API 平台:无法加载私钥

我正在尝试使用记录的设置来设置 API 平台:

https://api-platform.com/docs/core/jwt/

我通过以下方式加载了固定装置:

我的 security.yml 看起来像这样:

现在我想尝试获取令牌:

但我得到一个非 json 响应。我在某处找到消息:

这是我的 .env 文件:

1)为什么这条消息实际上不在json中?

2)为什么会发生这个错误?

3)我也无法访问文档,因为我在浏览器中找到了消息 {"code":401,"message":"JWT Token not found"}

谁能帮帮我?

更新: 对于 2) 似乎 .env 中的 JWT_PASSPHRASE 与我输入的密码不正确匹配。所以这部分已经解决了。

0 投票
1 回答
624 浏览

symfony - 带有 Api-Platform 的 GraphQL 在 GraphiQL 中返回 null

我在 Symfony 4 框架中设置了没有 docker 的 api-platform 并添加了 GraphQL 支持,如此处所述 - https://api-platform.com/docs/core/graphql

使用 GraphiQL 时,我似乎只得到空响应,我尝试了很多不同的 GraphQL 语法,都返回空。

GraphiQL 中的空响应

我试过了:

-

-

都没有运气

我可以正常请求api并得到响应。

API测试器中的成功请求

此外,GraphiQL 中的请求似乎都已发布,但这可能无关紧要。

我一直在尝试解决此问题一段时间,但未能在网上找到任何帮助。

谢谢

0 投票
1 回答
1172 浏览

symfony4 - Symfony 4:为 JWT 和 Behat 测试数据库

我使用 API Platform 2.1 和 Symfony 4,我使用 LexikJWTAuthenticationBundle 进行身份验证,使用 Behat 进行测试。

我无法正确设置。到目前为止,这是我的配置:

这是我的功能上下文:

现在执行时vendor/bin/behat,它只是读取.env文件(开发环境)并尝试将管理员添加到我的开发数据库中。

1)如何确保创建了测试数据库并且不使用开发数据库进行测试?我尝试.env.test使用不同的配置创建一个,但没有奏效。

2)即使没有@login场景上方的注释,它也会loginFeatureContext. 那是应该的吗?

3)我在任何地方都找不到有关如何设置的适当文档。API 平台文档似乎也不是很有帮助。参考:https ://api-platform.com/docs/core/jwt/#jwt-authentication 他们谈论createDBand dropDB,但它甚至不存在于任何地方。所以我从另一个网站上拿了它。这是正确的方法吗?

0 投票
2 回答
100 浏览

symfony - 安全的 UI,但公开允许 AJAX 请求

我正在使用 API 平台开发一个项目。

我希望通过基本身份验证保护 UI 的文档,而一些路由应该是公开的。

例如:

当我在浏览器中查看文档时,我可以简单地访问 /api/dishes,因为 IS_AUTHENTICATED_ANONYMOUSLY。我也看到了其他可用的 get/post 方法(尽管一些 post 方法是安全的)。

但是,这些文档根本不应该公开。在 Symfony 4 中,我如何确保为 docs 和 ajax 请求分离我的安全配置?

0 投票
1 回答
449 浏览

php - API 平台 - 无法从没有自有属性的模式生成实体

我正在运行 API 平台模式类型生成器,但在使用 schema.org 中定义但没有自己的属性 ( http://schema.org/Duration ) 的类型时遇到了困难。

当我运行 vendor/bin/schema generate-types 时,我得到

我的类型配置是:

如果我定义 Duration 从父级继承的属性之一(例如 Thing->Name),它会生成 OK,但我不确定如何在其上设置持续时间属性(可能是文本)。也许我混淆了如何使用/定义没有自己属性的类型 - 有没有办法告诉模式“这只是一个单一的文本值”?

0 投票
0 回答
312 浏览

rest - 基本设计 - 与 Symfony 4 项目的休息交流

我想知道 Symfony 4 中的 api 框架有多大。例如,有三个 API:

  • Price Api(数据来自不同的系统)
  • Product Api(数据来自不同的系统)
  • 用户接口

并且几个 symfony 客户端项目(网络目录、购物篮、特殊产品配置器 ..)将使用它进行内部工作。

我已经看到 Apis 有一个新项目。API 平台。我在这里担心的是,我们没有简单的 Api 请求,在单个表上获取、拉取、发布。会更像

请求背后有很多内部逻辑。是否存在要求复杂的现有项目?Api 平台对我来说很新,只有一个非常简单的演示......

在客户端发出休息请求......有不同的方法

  • 卷曲自己
  • GuzzleHttp
  • 统一
  • ...

Symfony 4 内部没有标准方法吗?(过去我们遇到过问题,当前的外部库不支持旧的 symfony 版本……)。

谢谢您最好的问候