问题标签 [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 回答
857 浏览

api - 我的网络应用 API 的 OAuth2 授权类型

我正在为我的 Web 应用程序开发一个 API,它可以为我的用户提供原始 JSON 数据以供他们随意使用。我正在使用带有 OAuth2 实现的 Apigility。

我希望我的用户访问我的应用程序中的屏幕以获取他们分配的凭据,然后使用它们来使用 API。我需要为每个用户创建一个 client_id 还是他们都可以共享同一个客户端并使用不同的用户名/密码?

我也不确定哪种 oauth 授权类型最适用。因为不涉及第三方,所以“密码”授权类型似乎就足够了;但我仍然必须在请求的标头中提供“client_id”和“client_secret”?

当用户只使用自己的 RESTful API 时,提供凭据和对用户进行身份验证的最佳方式是什么?

先感谢您。

0 投票
2 回答
1235 浏览

php - 如何按照 Apigility 方式验证嵌套数据?

我有一个关于验证嵌套json数据的小问题。例如,我有类似PATCH的请求:

some_property为这个嵌套数据设置过滤器和验证器的正确方法是another_property什么?

非常感谢您的回答

0 投票
1 回答
491 浏览

php - ZF2:使用转发插件时如何为所有控制器全局更改请求对象?

我在测试和性能目的中使用前向插件。首先IndexController数据通过正常的 POST 请求。在那里我得到了这个请求和 POST 数据,我需要再添加一个参数。

比我使用转发插件

当我在这里时,PortController我会再次收到我的请求 POST 数据,它应该包含我的更改IndexController

但事实并非如此。它得到的请求对象没有变化。

如何在当前请求过程中为所有控制器全局更改请求?

我已经在尝试什么?

所有这些差异都不起作用。

我已经阅读了这个答案 ZF2:如何将参数传递给转发插件,然后我可以在我将它们转发到的方法中获取这些参数?

但我不想通过参数传递数据,我需要更改请求。

UPD

但现在我已经过测试,也许是因为在接收方我试图以这种方式获取请求

但我应该这样使用它

这是因为我使用了 Apigility RPC 服务,并将 JSON 格式的 post 数据放在 Request Content 字段中,而不是放在 POST 中。在另一个地方我试着得到它

但是在我开始使用 POST 之后,这就是它开始感到困惑的原因。

0 投票
1 回答
1600 浏览

angularjs - 将 Angular 应用程序集成到 Zend Framework 2 中还是将其分开?

我已经构建了一个有角度的前端,它将由 Zend Framework 2 后端提供服务。现在我想知道,我是将我的 Angular 项目集成到 ZF2 中还是应该简单地将其作为 ZF2 之外的独立实体?

最初我将其构建为一个集成实体,并且因为我的 Angular 开发人员不使用 ZF2,我们决定简单地制作一个前端 APP 的香草版本以便于使用,这样他就可以在不必与 ZF2 斗争的情况下进行工作。

现在该应用程序大部分已构建,我想知道是否有必要集成它?

有什么优点和缺点?

0 投票
2 回答
77 浏览

zend-framework2 - ZF2 - 格式化路由

我通常像这样在 ZF2 中格式化我的路线:/name/to/route

现在我一直在用我的 api 路由做同样的事情,但是我发现我正在努力包含编码的 url 或数组等数据。

以下是此类路线的示例:

以下表示正斜杠,因此导致路由不起作用:%3A%2F%2

我想我应该这样编码我的路线:

你如何配置 module.config 文件来处理这个问题?

目前它在apigility中设置为:

编辑

我通过执行以下操作对我的路线进行了编码以包含 GET 参数:

这给出了这个:

http://example.com/api/register/access/code/?access_code=c102dea422fa4bb6958d77a29d9873d2&route=http%3A%2F%2Fexample.com%2Fapi%2Fdirectory

但是,由于“请求的 URL 无法通过路由匹配”而中断。错误。

由于包含 URL 中的斜杠的解释,该路由无法识别。

也许问题与 URL 的格式和作为参数的包含方式有关?

0 投票
1 回答
80 浏览

error-handling - Apiglity 是否提供内置的错误处理和日志记录?

我正在开发一个 API 项目,并且必须决定错误处理和日志记录策略/概念。因此,作为第一步,我想检查 Apigility 是否提供自己的日志记录功能。

如果我没看错的话,Apigility 只为 REST 特定错误提供了最小的错误处理(Apigility 文档 ->错误报告)。而已。因此,只有有限的错误处理,没有日志记录。正确的?但也许这是错误的,我只是没有找到我需要的功能。那么,是否提供了错误处理机制?Apigility 中是否提供了日志记录机制?

0 投票
1 回答
502 浏览

error-handling - 如何在 Apigility 中使用 validation_messages 和 display_exceptions?

从 Apigility 文档(错误报告):

API 问题规范允许您编写任何其他您认为有助于进一步阐明问题及其发生原因的附加字段。Apigility 利用这一事实以多种方式提供更多信息:

  • 验证错误消息通过validation_messages密钥报告。
  • display_exceptions启用视图配置设置后,堆栈跟踪将通过和trace属性exception_stack包含在内。

我不明白文档的这一部分。目的是什么以及如何使用这些设置validation_messagesdisplay_exceptions

0 投票
2 回答
1041 浏览

rest - 使用 Postman 时 Apigility 中的基本身份验证

我有一个使用 Apigility 的非常简单的 REST 服务,公开 GET 和 POST 方法。我使用 Postman 对其进行测试。一切正常。

然后我尝试添加一个身份验证层。为此,我创建了一个 htpasswd 文件,我通过 Apigility 接口创建了一个指向该文件的基本身份验证适配器,并在我的 API 的设置页面上选择了该身份验证类型。

我最终选择为 POST 请求添加授权请求,而不是 GET。

当我尝试发帖时,我被要求输入登录名和密码,我键入与 htpasswd 文件内容匹配的那个,生成授权标头并且 POST 工作得很好。

但是当我尝试在没有 Authorization 标头的情况下发出 GET 请求时,仍然会要求我输入登录名和密码。如果我取消,我会收到 401 状态码(未授权)。

据我了解,如果没有设置 Authorization 标头,Apigility 使用“访客”模式,并且由于 GET 方法不需要身份验证,我不应该输入登录名和密码来访问我的资源.

我哪里做错了?我没听懂什么?

谢谢

0 投票
1 回答
321 浏览

php - 具有many_to_many关系的apigility db连接服务

我是 ZF 和 apigility 的新手。我试图创建几乎零配置的数据库连接服务。一切正常,我有简单的 CRUD api,但有一件事我没有找到解决方案。我有两个表:场所和类别以及一个数据透视表 categories_venues 来管理 many_to_many 关系。当我尝试从表中创建服务时,除了数据透视表之外,一切正常。正如我所理解的那样,因为数据透视表名称中的下划线。所以我有两个问题。

  1. 我该如何解决这个问题,以便apigility可以发现表并导入它?
  2. 如何设置自定义路线以使用以下模式获取列表 /category/venue ?Rails 有什么魔法吗?我可以获得特定类别中的所有场地吗?反之亦然?

谢谢。

0 投票
1 回答
503 浏览

php - OnDispatch event in Service Constructor

I have problem with attaching OnDispatch event in Apigility. I want to have value from custom header in constructor of my abstract Service Class. It works when I simply add it to on bootstrap in Module.php

But I don't know how to pass this value to ServiceAbstract Constructor.

I also tried with implementing EventManagerAwareInterface and attaching events with attachDefaultListeners() method but that didn't get me any results - attached function was not called. What is the proper approach to attaching to events NOT in controllers? Thanks for any help.