问题标签 [3scale]
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.
api - How to use 3Scale's `authrep` function from a server and client perspective?
I'm attempting to setup a prototype API using nodejs that uses 3Scale's API management.
I've been able to find their plugin intergration code, which is as follows:
Which makes some sense to me as part of a server module. But, I'm not sure where the client's credentials are in that equation....
I see it as the client is pointing to your app, and here's the password for the app...but what about the username/password for the actual client!? where does that get checked?
I feel like I'm not grasping their architecture (possible because it's my first real node project and definitely my first time using 3Scale)...
Further, what's a client's request then look like?
wso2 - Mashery vs WSO2 vs 3scale
我想知道 Mashery、WSO2 和 3scale 之间的区别。有用过 API Managers 的朋友可以给点意见吗?各有什么优缺点
谢谢
干杯
http - 使用 Nginx/Lua 检测 HTTP Basic 用户/密码标头并将其重写为自定义标头
我正在使用一个历史 API,它通过密钥/秘密组合授予访问权限,指定的原始 API 设计器应作为 HTTP 基本身份验证标头中的用户名和密码传递,例如:
现在我们的 API 客户群正在增长,我们希望使用3scale来处理身份验证、速率限制和其他功能。根据 3scale 的说明和建议,我们将在 API 服务器前使用 Nginx 代理,该代理针对 3scale 的服务进行身份验证以处理所有访问控制系统。
我们将把我们现有客户的密钥和秘密导出到 3scale 并保持两个系统同步。我们需要我们现有的应用程序继续以现有方式接收密钥和秘密,因为一些返回的数据是特定于客户端的。但是,我需要找到一种方法将 3scale 本身不支持作为身份验证方法的 HTTP 基本身份验证请求转换为他们所做的重写的自定义标头。
我已经能够使用 3scale 为您配置的 Nginx 和 Lua 配置设置代理。这允许将-u key:secret
其传递到我们的服务器并正确处理。不过,目前,我需要另外添加相同的身份验证信息作为查询参数或自定义标头,以便 3scale 可以管理访问。我希望我的 Nginx 代理为我处理这个问题,以便用户以预先存在的方式提供一组身份验证详细信息,并且 3scale 也可以获取它。
在我知道的语言中,例如 Ruby,我可以解码 HTTP_AUTHORIZATION 标头,挑选出 Base64 编码的部分,然后对其进行解码以找到已提供的密钥和秘密组件。但我是 Nginx 新手,不知道如何在 Nginx 中实现相同的功能(我也不知道 3scale 提供的 Lua 脚本是否可以/将成为解决方案的一部分)......
nginx - 如何使用 Nginx 和 Lua 操作 POST 请求的 JSON 正文?
我正在做一个概念证明来演示我们如何在我们的堆栈中实现3scale 。在一个示例中,我想做一些 POST请求正文操作,以创建一个 API 外观,将可能是旧 API 格式的内容映射到新的内部格式。例如。改变类似的东西
进入
content_by_lua的Lua 模块文档,这似乎是合适的方法
不要在同一位置使用此指令和其他内容处理程序指令。例如,此指令和proxy_pass指令不应在同一位置使用。
我的理解是 content_by_lua 是一个类似于 proxy_pass 的内容处理程序,每个位置只能使用其中一个。
我认为没有任何方法可以删除proxy_pass,因为这是代理工作的基础,所以是否可以在单独的位置捕获请求,使用content_by_lua,然后传递到实现proxy_pass的位置,或者是否有不同的方法,如rewrite_by_lua哪个更合适?
如果它对其他人有帮助,我添加了以下函数(我的 Lua 的第一个位),它删除了user_key
3scale 授权所需的参数,但如果转发则对我们的 API 无效:
nginx - 如何连接 nginx、3scale 和 opendaylight 控制器?
我正在使用带有 Ubuntu 来宾操作系统的 Ubuntu 机器。在来宾操作系统上,我运行了我的 OpenDaylight 控制器,使用 Mininet 制作拓扑,并在 OpenDaylight GUI 的 localhost:8080 中查看它们。接下来,我在 Chrome 浏览器上使用 Postman REST API 客户端扩展向我的 ODL 控制器发出 GET 请求:
localhost:8080/restconf/operational/opendaylight-inventory:nodes/
我得到了 XML 格式的正确响应。现在,我必须通过 NGINX 代理将我的请求传递给 3Scale,并使用 app_id 和 app_key 参数进行身份验证。然后将请求转发到 ODL 控制器,以便我得到正确的响应。
我已经从 NGINX 下载了代理配置文件。必须对这些文件进行哪些修改?我在 Postman Client 中输入的请求应该是什么以获得与以前相同的响应?
api - 使用 API LM 工具构建 API
我是 API LM 的新手,对使用 apigee、3scale、mashery、mulesoft、TIBCO APIX 等工具构建 API 感到困惑
这些年来,我知道 API 都是关于一种语言的 API 或 SDK,您可以使用它来编写/构建代码/应用程序来解决业务问题。说 Java API 或 J2EE API 等
我是否必须使用我的应用程序/系统构建自己的数据服务并将其公开为服务 (WS/REST) 并使用上述工具(apigee、3scale、mashery、mulesoft ec)或者这些工具是否允许开发人员从划痕?
换句话说,我是否在您的企业内创建您自己的应用程序(无论是基于 Java、DB 还是 .Net 服务或托管在 weblogic 上的 Web 应用程序)并将其公开为 B2D 或 DX 的 API(具有身份验证、分析、门户、开发人员访问)称为“构建 API”?
chef-infra - 使用 AWS Opsworks 配置 Nginx
我已经安装了openresty食谱,但现在我需要安装我的配置文件。使用 Chef 添加我的 nginx.conf 和 nginx.lua 文件的最佳方法是什么?
lua - Lua 变量即使设置为 nil
我正在尝试修改 3scale 提供的 lua 文件。我不断收到以下错误:
导致此错误的代码块是:
如果我放置ngx.var.access_token = params.access_token .. ":" .. params.user_id
后get_credentials_access_token(params, service_ID)
错误不会发生。什么可能导致这种行为?
swashbuckle - 将 Swashbuckle (swagger) 导入 3scale ActiveDocs
我们目前在 .net (webapi) 上使用 Swashbuckle 记录了我们的 api,有什么方法可以将此文档导入 3scale ActiveDocs?
提前致谢
nginx - WebSocket 的 API 网关
我的 websocket 应用程序需要一个 API 网关。
- 分析和识别来自特定 IP 的异常请求
- 配额和速率限制
- 统计数据
- 免费或商业
- 扎实的表现
我的 WebSocket 的子协议是 WAMP,所以恐怕没有现有的产品可以完成这项工作。
我打算开发一个并假设它会以这种方式工作:
- 在我的客户端应用程序和我的 websocket 服务器之间安装了一个代理(NGINX 或 HAProxy)
- 代理将请求/响应复制到另一个应用程序,我称之为
monitor
- 该
monitor
应用程序分析流量并控制代理以限制/阻止某些 IP。 - 该
monitor
应用程序同时运行,如果它关闭,它不会影响我的应用程序和代理。
这种方法听起来可行。但代理似乎不支持重用上游连接到monitor
.
假设从代理到客户端建立了 10K 连接,那么代理也建立 10K 连接作为上游到monitor
应用程序?这是不可接受的。
我希望代理之间只建立一个或多个连接并monitor
发送重复的请求/响应。当然,代理会通知monitor
每个请求/响应的真实源/目标。
是否有任何代理或产品满足此要求,以便我只需要开发更少?