问题标签 [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.
symfony4 - ApiPlatform + JwtAuthenticationBundle
我正在尝试在没有 FOSUserBundle 的 Symfony 4 应用程序之上使用 JwtAuthenticationBundle 配置 api 平台。
我希望能够使用 swagger 界面。
和我的安全文件:
如果我按照文档操作,我将看不到我的招摇页面,我在 /api 上有一个 401 - Bad credentials。我无法通过招摇 UI 上的“授权”按钮登录。我必须在访问控制部分替换:- { path: ^/, roles: [ ROLE_READER ] }
通过- { path: ^/, roles: [ IS_AUTHENTICATED_ANONYMOUSLY ] }
这样做。
我不知道我是否错过了/错过配置某些内容,或者文档中是否有错误
谢谢 !
symfony - 无法为类型的项目生成 IRI
我实际上正在构建一个基于以下内容的 API:
- symfony/flex:v1.0.61
- symfony:v4.0.3
- api 平台/api 包:v1.0.1
- api平台/核心:v2.1.4
CRUD 操作很容易实现。然而, 自定义操作似乎并不简单。
我试图实现的自定义操作将简单地返回App\Entity\Product
基于给定的$slug
.
- 路线是:
/api/products/by-slugs/{slug}
- 方法是:
GET
- 操作类型为:
itemOperations
事情是这样进行的:
Product 资源的声明
ProductLoader 的声明
ProductRepository 的声明
Symfony 控制器中自定义操作的声明
快速运行以下命令返回:
路线route_product_slug
很好,但我总是收到以下错误:
无法为 App\Entity\Product 类型的项目生成 IRI "
这个错误似乎是反复出现的。不过,我再次询问,因为问题似乎与我的 flex-enable symfony 4 应用程序中的路由顺序错误有关(请参阅https://github.com/api-platform/core/issues/830)。
那么,如果我使用 symfony 4 中的注释,如何设置正确的路由顺序。路由在这些文件中定义:
第一个文件:annotations.yaml
第二个文件:api_platform.yaml
这是否意味着我必须使用 YAML 文件而不是注释来配置我的所有工作,以便我可以指定路由的顺序?
谢谢
这里什么
php - API 平台:没有这样的文件或目录
我正在学习名为“在 5 分钟内使用 API 平台创建您的第一个 API”的 API 平台教程。当我运行这个命令时:
docker-compose exec app bin/console 学说:schema:update --force
我收到这些错误:
[Doctrine\DBAL\Exception\ConnectionException] 驱动发生异常:SQLSTATE[HY000] [2002] No such file or directory
[Doctrine\DBAL\Driver\PDOException] SQLSTATE[HY000] [2002] 没有这样的文件或目录
[PDOException] SQLSTATE[HY000] [2002] 没有这样的文件或目录
当我运行时,实体似乎已正确生成:
docker-compose exec 应用程序箱/控制台原则:生成:实体 AppBundle
有人可以帮忙吗?
api - 如何使用 api-platform 构建 GraphQL API?
当我进入api-platform 网站时,我看到了“REST 和 GraphQL 框架来构建现代 API 驱动项目”。但是我没有找到任何解释如何在 api-platform 中生成 GraphQL API 的文档。任何人都可以确认我是否可能以及如何做到这一点?
api - 自定义操作在声明为集合时有效,但在声明为项目时无效
我正在尝试创建自定义操作。它应该返回Product
给定的资源slug
。要做到这一点,
声明为项目的自定义操作
和
它总是返回这个错误:
但是,如果我将它声明为一个集合,它就可以完美地工作。
声明为集合的自定义操作
和
那么,有什么问题吗??
谢谢,
php - API 平台:无法在 MySQL 中使用 json 数据类型
我是 API 平台的新手,并试图获取一个 json 数据属性以作为 json 对象持久保存到 MySQL。我查看了 API 平台文档并搜索了答案,但没有找到任何答案。
我的设置:
MySQL 列定义为:
我定义了一个“MyEntity”PHP 对象,json 属性描述如下:
现在,当打开显示 MyEntity 的默认界面的 URL 并执行 POST 以使用此 json-ld 创建它时(简化以省略其他列):
我收到 400 错误请求错误
我转义了双引号(这对我来说似乎很奇怪,因为它是描述另一个 json 对象的 json 本身,所以你需要这样做),如下所示:
并再次执行 POST:
我收到 400 Bad Request Error 和不同的内部错误:
所以看起来 API 平台无法识别 JSON 数据类型,并且期待它的自定义实体......对我来说似乎不正确。
我还查看了学说的类型,据我了解,API 平台使用并找到了以下信息:
一些供应商拥有原生 JSON 类型,Doctrine 将尽可能使用它,否则会默默地回退到供应商的文本类型以确保最有效的存储要求。如果供应商没有原生 JSON 类型,则此类型需要 SQL 列注释提示,以便可以从数据库对其进行逆向工程。Doctrine 无法在不支持列注释的供应商上正确映射回这种类型,而是会回退到文本类型。
但是由于 MySQL 确实支持 JSON 数据类型,我认为这会起作用,但显然不是。任何有关 API 平台如何使用 MYSQL 处理 JSON 数据类型的帮助将不胜感激。
javascript - 如何在 REST API 上通过 axios 设置 POST 请求?
如何在 REST API 上通过 axios 设置 POST 请求?
我看到标题不正确,但我不明白,为什么?此外,我经常遇到这样一个事实,即 axios 的文档根本不起作用。
示例获取 GET 请求,它的工作原理: axios 中的动态主机
这是获取主机 API 所必需的:
ps:这只能以这种方式工作。
- axios 版本:例如:v0.16.2
- 环境:例如:node v8.9.4,chrome 64.0.3282.119,Ubuntu 16.04
- Symfony 4.0.4
- Vue.js 2.4.2
- Vue-axios 2.0.2
symfony - 必须为每个资源拥有一个且只有一个 Collection Data 提供者吗?
我确实需要在我的 API 中进行自定义操作,以返回给定 slug 的实体。因此,资源的操作总数为Product
6(5 个是默认操作 + 1 个自定义操作)。
我按照官方文档来定义自定义操作。但令人惊讶的是,我注意到该路由api_products_get_collection
正在使用该路由的集合数据提供程序api_products_slug
。
起初我认为这是路线顺序的问题。但是,情况并非如此,因为如下命令所示:
此外,这是我声明路线的方式:
因此,可以肯定的是,这不是与路线顺序有关的问题。
问题是:每个资源是否应该只有一个集合数据提供者?
以下是我声明自定义操作的方式。
(1) 实现 CollectionDataProviderInterface 的提供者声明
(2) 动作的定义
(3) 将自定义动作声明为服务
(4) 自定义动作的路由声明
环境
javascript - 不要在 api 上设置 POST 请求,得到 406 Not Acceptable
不要在 api 上设置 POST 请求,得到 406 Not Acceptable。尝试使用 axios 并得到 406 错误。有人认为是 axios 问题的原因。然后我尝试使用 fetch() 并再次遇到 406 错误。
我认为没有设置标题Content-Type
,当我发送 his-get 400 Bad Request 和标签预览时Unauthorized header content-type
。
需要你的帮助,我做错了什么?感谢大家的帮助。
- 环境:node v8.9.4,chrome 64.0.3282.119,Ubuntu 16.04
- axios 版本:0.16.2
- Vue.js 2.4.2
- Vue-axios 2.0.2
- api平台/api包:1.0
- Symfony 4.0.4
第一个示例 fetch() 代码:
第二个示例 Axios 代码:
api-platform.com - Can’t submit data to API Platform
I have a controller through which I send data to my local environment of the api platform (which is running fine)
But unfortunately i'm getting an error in my dev.log of the api environment:
The output of form->getData():
Running the endpoint at the api platform with the same values goes fine as well.
Does anyone of you has an idea why this goes wrong?