问题标签 [laminas-api-tools]
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.
zend-framework2 - 如何使用 Apigility 从资源类访问 URI 查询参数?
我正在开发基于Zend Framework 2的Apigility驱动应用程序。
我希望我的应用程序同时为单个项目和列表提供嵌套响应:
/projects/1
/projects
由于我还没有找到用于实现具有嵌套列表的列表的 apigility 符合解决方案(在这种情况下,项目具有每个项目列表项的图像列表,请参见此处)。我必须处理Paginator
and并手动DbAdapter
提供参数:page
问题是,这$this->getEvent()->getRouteMatch()->getParam('page', 1)
行不通。代替page
参数,$this->getEvent()->getRouteMatch()->getParams()
返回
如何访问请求参数?
php - 在将数据发送到客户端之前,如何在 Apigility 中访问和操作数据?
我正在开发基于Zend Framework 2的Apigility驱动应用程序。
目前,我正在将在数据库中检索到的数据直接发送到客户端:请求进来,MyResource#fetch(...)
或被MyResource#fetchAll(...)
触发并调用MyService
类上的适当方法,该方法调用MyMapper
以使用其方法(如findFooByBar(...)
.
现在我想在发送响应之前处理数据。我怎样才能做到这一点?
Apigility ZF HAL 文档显示,如何访问已检索并发送到客户端的实体数据。好吧,我试过了。对于此类任务,它很丑陋并且代码很多。而且......它不起作用。但是我想在这里发布我的尝试:
angularjs - 为 Apigility 验证 Angular js 模块
我使用 Apigility 创建了一个 API。我正在尝试为我目前正在使用 API 构建的前端应用程序设置身份验证系统。
但是我用于此身份验证系统的所有角度身份验证模块都与 Apigility oAuth 2 实现不匹配:
https://github.com/lynndylanhurley/ng-token-auth该模块的问题是,它不允许 CORS。但是,它允许使用角度代码所在的服务器上的代理发送 CORS 请求,这是我使用 Guzzle 用 PHP 编写的。但是使用代理 ng-token-auth 发送请求两次成功,即使所有身份验证数据都是错误的。
https://github.com/sahat/satellizer这个模块需要 JWT 的实现,但是在 Apigility Authentication 部分我没有看到任何关于它的文档。
我需要帮助来完成我的项目。
php - 如何使用 ApiGility 和 RPC 创建数据并返回格式正确的 json
我正在使用 ApiGilty 的 RPC 服务来返回一些数据。我想仔细检查这是否是格式化和返回数据的正确方法,因为我不能 100% 确定正确的过程。
编辑:澄清数据是由许多实体构建的:
有没有办法打主并获得所有子实体?目前我正在从头开始构建数据并返回一个数组。
我的 RPC 控制器如下:
现在要创建数据,我正在做这样的事情:
与邮递员核对时,我得到以下信息:
现在,由于我没有什么可以引用的,我的问题很简单。我是否以正确的方式解决了这个问题,这是返回代码的格式吗?
谢谢!
mongodb - 使用 Doctrine 2 ODM MongoDB 的敏捷性
当我从我的 API 获取实体时,出现错误:
PHP 致命错误:在第 442 行的 /Sites/system.local/vendor/zfcampus/zf-apigility-doctrine/src/Server/Resource/DoctrineResource.php 中的非对象上调用成员函数 createQuery()
DoctrineResource.php(第 442 行的函数 - fetchAll):
我的作曲家.json:
我的模块.config.php:
请帮忙。谢谢!
php - 如何让 serviceManager 在 zf2 类上工作
我在 module.php 上定义了一些服务,它们按预期工作,声明为:
我使用它们将我的数据库表映射到一个对象。从我项目的主要课程中,我可以毫无问题地访问它们。看一下我的项目文件树:
例如,userResource.php 扩展了 abstractResource 并且此函数有效:
在 ResourceAbstract 里面我有:
正如 Zf2 文档所建议的那样,我需要实现 ServiceLocatorAwareInterface 才能使用 serviceManager。到目前为止,一切都很好。然后我决定添加一个新类,调用 Auth。
这个类与 abstractResource 没有太大区别,它在 loginController 中调用如下:
这是授权:
如您所见,它遵循与 abtractResource 相同的路径,但是,在这种情况下,当我执行 loginController 时,会出现错误:
这指的是这一行:$user = $this->getServiceLocator()->get('Marketplace\V1\Rest\User\UserCollection')->findByEmail($email);
这意味着 getServiceLocator 是空的。为什么我不能让 serviceLocator 在 Auth 类上工作,但我可以在 abstractResource 中工作?
php - ZF2 apigility - 我们如何验证 json 数据中的集合
如何使用 Apigility 获得经过验证的 json 值。例如,我需要在以下 json 数据中的集合user_id
下进行验证。users
我知道可以通过 apigility 验证字段,但这里来自 json。
谢谢
php - 在每个 http 请求上调用一个函数
在我的 Apigility 项目中,我有不同的 Rest 资源,它们都扩展了我的类 ResourseAbstract,并且在那里我根据 Apigility 的需要扩展了 AbstractResourceListener。
因此,例如我的资源用户:
和资源摘要:
现在,每次发出 http 请求时,我都需要运行一个函数,如果我在浏览器中查询 /user,UserResource 类将被实例化,因此 ResourceAbstract,我在每次调用时运行某些东西的“解决方案”是使用ResourceAbstract 中的构造函数,它“有效”:
问题是在某些情况下我需要返回一个 ApiProblem(http 请求上的错误标头),但正如您所知,构造函数不返回参数。另一种解决方案是抛出异常,但在 Apigility 中,当出现 api 问题时,您应该设置 ApiProblem。构造函数方法是否正确?你将如何解决这个问题?
api - Apigility 架构
我在不同的子域下有几个系统工作。每个系统都提供一些 Restful API,供移动客户端使用。现在我研究了管理这些 API 的 apigility。
但是架构对我来说并不完全清楚。我所有提供 API 的系统都是使用 Zend Framework 2 构建的。我是否必须向每个系统添加 apigility 组件?或者我可以设置另一个使用apigility的子域吗?我可以从一个地方为所有系统配置 API 吗?还是我必须为每个系统单独配置apigility?
如果我可以访问 api.example.com 下的 apigility,然后查看我配置的系统的不同 API,那对我来说会很好。API 将在系统的子域下提供服务,例如:system1.example.com/api/documents system2.example.com/api/pictures 等。
这可能与apigility吗?
php - 在 POST 上找不到 Apigility DBconnected REST 项目
我刚刚建立了一个数据库连接服务。我更改了实体标识符名称以与我的表匹配,添加了三个字段(一个是标识符)并进行了一些长度验证。没有进一步的变化,到目前为止,很好,我可以get/
,get/:id
没有问题。
问题来自半柱。做一个帖子确实插入到表中,但我的回复是404 item not found。当然,当尝试发布相同的数据时,我会遇到重复的密钥错误。
我不明白插入后未找到有什么问题。我错过了什么吗?
更新 3/9
阅读一些帖子和小组,我可以将问题缩小到zf-apigility/src/DbConnectedResource.php
由于我的数据库是 mysql,而我的主键是一个字符串,我相信会getLastInsertValue()
尝试一个 int id。
我找到的解决方案与使用 apigility 提供的功能/序列的 postrgress db 有关,但我认为应该有一种更简单的方法来解决这个问题。Apigility - 功能。
我正在寻找一种方法来指定获取最后插入值确认的方法或从 DbConnectedResource.php 继承并重新实现该create($data)
方法。
我知道这应该在API/config/module.config.php
下面的service_manager
类别中配置,但真的不知道如何。