问题标签 [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 投票
0 回答
692 浏览

api - 如何使用 Apigility 创建一个 REST API 来上传图像文件?

我尝试为数据库中的表事件创建休息 api。这个实体有一个属性是拇指图像。因此,当用户发布新事件时,用户必须通过 api 将照片附加到服务器。我使用 api POST /event 参数是 multipart/form-data 包括事件的所有属性(平铺、描述、位置、链接、start_time、end_time、thumb_url)。thumb_url 是指向用户通过我们的 api 发布的拇指的链接。

但我无法使 api 与教程 https://apigility.org/documentation/recipes/upload-files-to-api一起使用

有人可以帮我怎么做吗?

更多细节:https ://github.com/zfcampus/zf-apigility-skeleton/issues/78

0 投票
1 回答
523 浏览

php - 在apigility中触发RPC控制器中的REST请求

考虑到 REST 和 RPC 调用之间的差异并将它们应用到 apigility 我想将注册操作实现为 RPC 调用,它通过 POST /user 添加用户,触发操作电子邮件提交并分离数据以添加一些特定信息到第二个端点。

现在我的问题是:什么是最有效的方法以及如何在 apigility 的 RPC 请求中实际触发 REST 请求。

流程应如下所示:

POST /register -> 创建用户(POST /user),发送激活邮件,通过 curl 调用另一个 API,向此用户配置文件添加数据 -> 返回用户数据

我需要 curl 我自己的 api 还是我可以在 apigility 中传递请求?/user 端点是一个简单的数据库连接的 REST 资源,并且已经过测试和功能。

同样重要的是,我想为 POST /user 添加授权,因为我们在其中存储了一些数据,例如验证时间戳和其他受限信息,一旦经过身份验证或通过(过滤和处理)RPC 调用就可以访问这些数据。

0 投票
2 回答
1107 浏览

php - POST 请求中的嵌套参数/值

我一直在考虑一种处理对apigility资源的POST请求中的嵌套/复杂值的好方法。

例如,一个订单可能在一个请求的用于创建订单的 POST 中包含一组订单项。order 和 order-item 都作为资源存在。但是,我非常希望只有一个请求可以创建订单和订单项目实体。在资源中处理它不是问题,但我想知道您将如何使用 apigiliy UI 配置该资源(让我们称之为 order-place) - 或者,如果根本不可能,使用配置。应用验证器和过滤器是 apigility 的关键特性之一,我想继续使用它,即使是复杂的请求数据。

在你问之前,使用下划线分隔值范围,例如 order_comment 和 order_item_comment 不应该是一个选项。

有任何想法吗?:)

另外:一个示例 json 请求有效负载可能如下所示:

0 投票
2 回答
1001 浏览

zend-framework2 - ZF2 - Apigility 没有创建新的 api

我在一个应用程序上成功运行了 Apigility,并决定将它用于一个新应用程序。我被难住的问题是它拒绝创建一个新的 api 并且似乎在“创建新的 api”屏幕上“挂起”。

这是它挂在哪里的屏幕截图:http: //screencast.com/t/7CI3TN38Fm

有关如何对此进行错误测试的任何建议或是否有人遇到过类似的问题?

编辑

检查控制台时,我注意到以下错误:

http://screencast.com/t/gIbZEWMwo

编辑

经过进一步调查,似乎 ZfcRbac 是问题的原因......要创建需要注释掉的 Api。

不确定解决此问题的最佳方法...一旦我知道,将进行调查并发布答案。

0 投票
0 回答
207 浏览

php - Zend 框架无法识别类

我在使用 Apigility 时对 Zend 比较陌生。
当我尝试从属于另一个 MVC 项目的外部文件中包含类时,会读取文件,但创建实例会返回错误。

如果我使用包含/要求函数class_exists返回 true,但我仍然无法创建对象,而使用 Zend_Loader 中的自动加载过程之一会给出错误“class *** not found”(在这种情况下class_exists返回 false)和在屏幕上打印文件的全部内容。

这不是由于我的 MVC,因为我遇到了同样的问题,包括动态创建的类。这不是匹配问题

有任何想法吗?


编辑 - 当我试图从名为“示例”的 Apigility 应用程序的 Module.php 中的函数 getServiceConfig() 加载类用户时

如果在没有来自 Example 命名空间的干扰的 Apigility 公共文件夹的index.php文件中使用相同的代码,则可以正常工作。

0 投票
1 回答
346 浏览

php - DB2 i 系列上的 ZF2 Zend\Paginator\Adapter\DbSelect

我正在创建 Zend APIgility 应用程序 REST 服务,但我的 fetchAll Mapper 函数有问题。

我正在通过 Windows 应用程序服务器上的 DB2 Connect 连接到在 i 系列服务器 (AS/400) 上运行的 IBM DB2 数据库。

我的连接是在我的 local.php 中进行的,如下所示:

我的 Mapper 类中的 fetchAll() 函数是:

当我点击 DbSelect 时,ZF2 抛出以下 DB2 Connect 错误:

我不确定它为什么使用 *LIBL(用户定义的库列表),因为我在连接选项中定义了库(SCHEMA)以用作 LIBWEB。

提前致谢!

0 投票
0 回答
365 浏览

php - 在 HEAD 请求中无法响应 404

HEAD在 apigility 中实现请求时,我无法以未找到的 404 响应。默认情况下, ApigilityHEAD使用与请求相同的资源方法处理请求GET。这就是fetch($id)方法。

我的资源如下所示:

当使用 REST 客户端访问资源时,HEAD我得到 200 OK。我可以确认ApiProblemResponse是从方法返回的。使用GETI 请求资源,我得到了预期的 404 响应。

似乎HEAD与. GET_ AbstractRestfulController以下是相关代码的代码片段:

在 get 实现中,resourceListener 方法的结果作为应用程序响应返回。这对我来说似乎是正确的。在头部实现中使用了 MvcEvent 响应,因此忽略了ApiProblemResponse从 resourceListener 返回的 I。我无法MvcEvent从我的ResourceListener.

有没有人能够为HEAD请求返回 404 的解决方案?

0 投票
1 回答
514 浏览

php - Apigility 作为具有远程授权服务器的 OAuth2 资源服务器

我需要将 OAuth2 支持添加到使用 Apigility 构建的现有 REST API 中。由于 Apigility 包含一个 OAuth2 模块,似乎最简单的方法就是简单地使用它。

但是,文档指出“在 Apigility 中,资源服务器和授权服务器是从同一个 API 服务器交付的”。这对我不起作用,因为 API 需要利用我们单独构建的新 OAuth2/OpenID 服务器,并将用于我们所有的 API。

所以,问题是(是):

  1. 是否可以将 Apigility 用作具有外部 OAuth2 服务器的资源服务器?

  2. 有没有人这样做或尝试这样做,并可以分享他们的经验?

  3. 其他想法?也许某处存在文档或教程?(我找不到任何东西)

谢谢!

0 投票
1 回答
1095 浏览

php - ApiGility - 返回自定义集合

我的目标是为findAll()查询返回一个自定义集合并将其传递给 HAL,以确保其_links格式正确。我最初以为我会简单地以编程方式执行此操作,但这似乎是错误的执行方式。

我面临的问题是我需要的数据不是来自单个表,而是来自多个表(连接),我无法弄清楚如何正确执行此操作。

我有以下实体:

Stone 实体:一个标准表,其中包含我想在我的提要中返回的一些属性

属性实体是一个标准表:

我的资源调用:

我的映射器文件:

我的收藏

结果的屏幕截图:http: //screencast.com/t/vgm34s92dsk2

正如您从屏幕截图中看到的那样,“属性”和其他类似字段没有被填充......

所以我的问题是:如何确保在提要中填充连接表?

0 投票
2 回答
5536 浏览

doctrine-orm - Doctrine - 如何在使用查询构建器时对集合进行水合

我之前问的一个问题是在使用 Doctrine 和查询构建器时对结果集进行水合处理。我的问题是如何返回一个数组及其子集:

这是针对单个结果集的,答案很简单:

我的下一个问题是如何为一个集合做同样的事情?这是我尝试过的:

这个解决方案我面临的问题是连接表没有被填充,我最终得到了一个空结果的集合。

StoneCollection 类只是扩展了分页器:

我在想也许最好的方法是获取一个数组并对数组进行分页?

编辑::

我有这个工作,虽然我并不热衷于它,因为我两次访问数据库。第一次构建数组(这是整个结果集,对于某些应用程序来说可能非常大),然后第二次对结果进行分页,然后将结果返回到 ApiGility 中的 HAL 进行处理......

理想情况下,这应该一次性完成,但是我不确定如何在单个实例中补充结果......