问题标签 [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.

0 投票
1 回答
2138 浏览

zend-framework2 - 如何使用 Apigility 从资源类访问 URI 查询参数?

我正在开发基于Zend Framework 2的Apigility驱动应用程序。

我希望我的应用程序同时为单个项目和列表提供嵌套响应:

/projects/1

/projects

由于我还没有找到用于实现具有嵌套列表的列表的 apigility 符合解决方案(在这种情况下,项目具有每个项目列表项的图像列表,请参见此处)。我必须处理Paginatorand并手动DbAdapter提供参数:page

问题是,这$this->getEvent()->getRouteMatch()->getParam('page', 1)行不通。代替page参数,$this->getEvent()->getRouteMatch()->getParams()返回

如何访问请求参数?

0 投票
3 回答
2297 浏览

php - 在将数据发送到客户端之前,如何在 Apigility 中访问和操作数据?

我正在开发基于Zend Framework 2的Apigility驱动应用程序。

目前,我正在将在数据库中检索到的数据直接发送到客户端:请求进来,MyResource#fetch(...)或被MyResource#fetchAll(...)触发并调用MyService类上的适当方法,该方法调用MyMapper以使用其方法(如findFooByBar(...).

现在我想在发送响应之前处理数据。我怎样才能做到这一点?


Apigility ZF HAL 文档显示,如何访问已检索并发送到客户端的实体数据。好吧,我试过了。对于此类任务,它很丑陋并且代码很多。而且......它不起作用。但是我想在这里发布我的尝试:

0 投票
3 回答
1601 浏览

angularjs - 为 Apigility 验证 Angular js 模块

我使用 Apigility 创建了一个 API。我正在尝试为我目前正在使用 API 构建的前端应用程序设置身份验证系统。

但是我用于此身份验证系统的所有角度身份验证模块都与 Apigility oAuth 2 实现不匹配:

  1. https://github.com/lynndylanhurley/ng-token-auth该模块的问题是,它不允许 CORS。但是,它允许使用角度代码所在的服务器上的代理发送 CORS 请求,这是我使用 Guzzle 用 PHP 编写的。但是使用代理 ng-token-auth 发送请求两次成功,即使所有身份验证数据都是错误的。

  2. https://github.com/sahat/satellizer这个模块需要 JWT 的实现,但是在 Apigility Authentication 部分我没有看到任何关于它的文档。

我需要帮助来完成我的项目。

0 投票
2 回答
1550 浏览

php - 如何使用 ApiGility 和 RPC 创建数据并返回格式正确的 json

我正在使用 ApiGilty 的 RPC 服务来返回一些数据。我想仔细检查这是否是格式化和返回数据的正确方法,因为我不能 100% 确定正确的过程。

编辑:澄清数据是由许多实体构建的:

有没有办法打主并获得所有子实体?目前我正在从头开始构建数据并返回一个数组。

我的 RPC 控制器如下:

现在要创建数据,我正在做这样的事情:

与邮递员核对时,我得到以下信息:

在此处输入图像描述

现在,由于我没有什么可以引用的,我的问题很简单。我是否以正确的方式解决了这个问题,这是返回代码的格式吗?

谢谢!

0 投票
0 回答
1092 浏览

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:

请帮忙。谢谢!

0 投票
1 回答
716 浏览

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 中工作?

0 投票
1 回答
2029 浏览

php - ZF2 apigility - 我们如何验证 json 数据中的集合

如何使用 Apigility 获得经过验证的 json 值。例如,我需要在以下 json 数据中的集合user_id下进行验证。users

我知道可以通过 apigility 验证字段,但这里来自 json。

谢谢

0 投票
2 回答
313 浏览

php - 在每个 http 请求上调用一个函数

在我的 Apigility 项目中,我有不同的 Rest 资源,它们都扩展了我的类 ResourseAbstract,并且在那里我根据 Apigility 的需要扩展了 AbstractResourceListener。

因此,例如我的资源用户:

和资源摘要:

现在,每次发出 http 请求时,我都需要运行一个函数,如果我在浏览器中查询 /user,UserResource 类将被实例化,因此 ResourceAbstract,我在每次调用时运行某些东西的“解决方案”是使用ResourceAbstract 中的构造函数,它“有效”:

问题是在某些情况下我需要返回一个 ApiProblem(http 请求上的错误标头),但正如您所知,构造函数不返回参数。另一种解决方案是抛出异常,但在 Apigility 中,当出现 api 问题时,您应该设置 ApiProblem。构造函数方法是否正确?你将如何解决这个问题?

0 投票
1 回答
269 浏览

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吗?

0 投票
0 回答
286 浏览

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类别中配置,但真的不知道如何。