问题标签 [api-management]

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 回答
571 浏览

octopus-deploy - 使用 GIT 和 Octopus 进行 API 管理 - Git PUSH / Git PULL

继我的这篇文章之后:

使用 GIT 进行 API 管理

我有一个 API 管理实例正在运行。我知道 API 管理有自己的 GIT 存储库。

我可以成功地克隆、更改并将更改推送到我的 API 管理 GIT 存储库。

我也在运行 Octopus deploy 并尝试使用它:

Git 推送

和这个:

Git 拉取

从我的公司 GIT 存储库中提取我的代码并推送到 APIM GIT 存储库。

问题是,这些插件会立即失败,因为无法在 Octopus 服务器上找到文件路径。此外,这些是在 2014 年编写的。

有没有推荐的更好的方法来从您的公司仓库中提取并推送到 APIM 仓库?另外,如果我要拉到 Octopus,代码在推送到 APIM 之前存储在哪里?

0 投票
1 回答
106 浏览

api - 我们如何使用 API Connect 发布客户现有的 REST API?

假设客户只向我提供了他们现有 API 的 URL 端点。他们没有招摇文件供我们导入 API。

客户希望使用 API Connect 将他们的 API 发布给用户使用。

我使用 API 管理成功地做到了这一点。现在 API 管理已被 API Connect 弃用,但该功能仍在 API Connect 中。我未能使其与 API Connect 一起使用。我们如何使用 API Connect 发布不使用 swagger 的客户现有的 REST API?请点亮。非常感谢您的帮助。

问候, Quyen Tran

0 投票
0 回答
43 浏览

wso2 - WSO2 只实现 HTTP 服务

如何仅从 WSO2AM 发布 Http 服务?
当我从客户端访问 WSO2AM 服务时,我收到来自服务器的空响应。

这就是我为 HTTP 设置的内容。
服务正在使用 HTTPS 工作,但这是不希望的。

在此处输入图像描述

0 投票
2 回答
758 浏览

api - 我需要 API 网关吗

我有一个应用程序,它具有一些我希望第三方业务能够利用的功能。例如,用户信息被传递给我们,我们运行 ID 检查并发送回带有信息的令牌。

我想我可以使用像 3scale 这样的第三方 API 管理服务,但是我必须做些什么来“公开”这个 API?

谢谢!

0 投票
1 回答
230 浏览

authentication - 如何将 WSO2 api manager 2.0.0 与 OpenAM 集成以进行用户管理?

我正在尝试将 WSO2 与 OpenAm 集成以进行用户管理。谁能给我提供整合的步骤。?

0 投票
1 回答
48 浏览

rest - 为 Restful Web 服务的自定义实现生成文档

我的项目为我们的 API(一些 6k 奇怪的服务)定制了 Rest 实现——我们不遵循JAX-RS规范。

我正在寻找一种为这些服务生成Swagger (Yaml) 文档或 WADL 文档的方法,以便我们可以在 API 管理平台上列出我们的 API。

有没有一种方法可以实现这一点,或者我可以使用任何工具为我自动生成这些?我遇到了一些 maven 插件,但这些插件要么用于实现 JAX-RS 规范的框架,要么我需要使用 Swagger 注释手动注释我的类。

任何帮助/指针将不胜感激。谢谢。

0 投票
1 回答
470 浏览

java - Apiman 不恢复网关

您能否帮助我解决以下问题。我使用 Apiman 1.2.1 版

我通过 kubernetes 公开这个版本,作为我在同一个容器中使用 postgres 的持久卷。一旦我第一次创建它,之后在 apiman 中我添加了 Organization/API/.... 和所有必要的人员。

我按下按钮发布 api,并可能检查它是否完美运行,因此我使用kubectl port-forward pod-name 8080:8080并可能通过浏览器检查我的网关http:localhost:8080/apiman-gateway/ORgId/bla/bla/bla/bla?givemedescriptionbyid=1

在这之后我去控制台并杀死 apiman pod,作为 pod 重启的结果,同样的操作kubectl port-forward new-pod-name 8080:8080,我可以看到 apiman 的所有数据,如组织、apis 和所有其他人员都已经存在。

但是,如果您再次尝试调用网关,则会出现一个大问题,它会告诉您:

{"responseCode":500,"message":"API not found.","trace":"io.apiman.gateway.engine.beans.exceptions.InvalidApiException: API not found.\n\tat io.apiman.gateway .engine.impl.ApiRequestExecutorImpl$3.handle(ApiRequestExecutorImpl.java:278)\n\tat io.apiman.gateway.engine.impl.ApiRequestExecutorImpl$3.handle(ApiRequestExecutorImpl.java:271)\n\tat io.apiman.gateway .engine.impl.SecureRegistryWrapper$1.handle(SecureRegistryWrapper.java:122)\n\tat io.apiman.gateway.engine.impl.SecureRegistryWrapper$1.handle(SecureRegistryWrapper.java:111)\n\tat io.apiman.gateway .engine.es.CachingESRegistry.getApi(CachingESRegistry.java:116)\n\tat io.apiman.gateway.engine.impl.SecureRegistryWrapper.getApi(SecureRegistryWrapper.java:111)\n\tat io.apiman.gateway.engine .impl.ApiRequestExecutorImpl。执行(ApiRequestExecutorImpl.java:270)\n\tat io.apiman.gateway.platforms.servlet.GatewayServlet.doAction(GatewayServlet.java:232)\n\tat io.apiman.gateway.platforms.servlet.GatewayServlet.doGet( GatewayServlet.java:77)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:687)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)\n\tat io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86)\n\tat io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)\n\tat io.undertow。 servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)\n\tat org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)\n\tat io.undertow.server。handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)\n\tat io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)\n\tat io.undertow.servlet.handlers.security。 ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)\n\tat io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)\n\tat io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler. java:46)\n\tat io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)\n\tat io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) \n\tat io.undertow.servlet。handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:72)\n\tat io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)\n\tat io.undertow.security.handlers.SecurityInitialHandler。 handleRequest(SecurityInitialHandler.java:76)\n\tat io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)\n\tat org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest( JACCContextIdHandler.java:61)\n\tat io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)\n\tat io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) \n\tat io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:282)\n\tat io.undertow。servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:261)\n\tat io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80)\n\tat io.undertow.servlet.handlers.ServletInitialHandler $1.handleRequest(ServletInitialHandler.java:172)\n\tat io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)\n\tat io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774 )\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat java.lang .Thread.run(Thread.java:745)\n"}访问$000(ServletInitialHandler.java:80)\n\tat io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:172)\n\tat io.undertow.server.Connectors.executeRootHandler(Connectors.java: 199)\n\tat io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util .concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat java.lang.Thread.run(Thread.java:745)\n"}访问$000(ServletInitialHandler.java:80)\n\tat io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:172)\n\tat io.undertow.server.Connectors.executeRootHandler(Connectors.java: 199)\n\tat io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util .concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat java.lang.Thread.run(Thread.java:745)\n"}ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat java.lang.Thread.run(Thread.java:745) \n"}ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat java.lang.Thread.run(Thread.java:745) \n"}

我可以看到,通过 api manager 中的调用指标,我所有的调用都可以到达 apiman-gateway,但我得到了 500 个响应代码。

0 投票
0 回答
2881 浏览

ssl - 无法为 ssl://das_server:7712 借用客户端

非常感谢有机会

我正在尝试使用我的网关 wso2 API 管理配置 DAS 服务器。

在我的日志中总是出现以下消息:

有人对这个错误有想法吗?

我的架构是分布式组件

非常感谢,

0 投票
0 回答
373 浏览

apiconnect - 从外部服务问题返回的 APIConnect JSON 数组

我们有一个 Rest API,它在其程序集中仅包含对外部 Rest 服务的“调用”,没有任何映射,因此该 API 将仅充当网关。

如果直接调用外部服务(例如通过 SoapUI),它会返回一个 JSON 响应,其中包含一个对象数组。该数组嵌套在从根对象开始的 3 级深度。

相反,当我们用相同的请求调用我们的 API 时,我们会得到不同的响应:在数组的位置,我们得到一个对应于数组最后一个对象的对象;响应中不存在数组的其他对象。

有没有办法解决这个问题?谢谢。

0 投票
1 回答
511 浏览

ruby-on-rails - 当您的数据库架构发生变化时处理旧版本移动应用程序的正确方法

我有一个 ionic android 移动应用程序,它连接到 rails api 服务器上的 ruby​​,这个应用程序使用 postgresql 作为数据库服务器。

每当我创建一个新功能时,我都会将 api 和新应用程序都部署到应用程序商店,并碰撞相应版本的 api 和应用程序,它们有自己的版本编号顺序。
该 api 已部署到服务器,但用户设备上的应用程序不经常更新,因此对我来说出现以下 2 种情况

案例 1:新列添加
发布时会发生问题,例如,我在 db 中的某些表中添加了很少的新列,以捕获相应文本字段也已添加到应用程序 UI 的附加信息。
在这里,新版本应用程序的用户将按预期工作(将这 2 个信息发送到列),但旧版本不会发送这 2 个字段值

案例 2:删除
的列例如,我正在以一种主要方式重新构建应用程序,并且必须规范化数据库,因为它之前效率低下,甚至导致表等被破坏或删除了几列。
在这里,旧版本的应用程序只会崩溃或无法工作。

我觉得我构建的每个业务应用程序都会有相同的场景来管理,这应该是所有人的共同问题

我正在编写一些自定义逻辑,应用程序将在连接到 api 服务器时检查“更新标志”,如果应用程序的版本设置为强制更新以使其与 api 版本一起使用,那么应用程序将被重定向玩/应用商店。

我想知道每个人是如何处理这个问题的,我做得对吗?

是否有任何 Rails 插件或库已经解决了这个特定问题或帮助解决了这个问题。我知道有很多可用的版本控制 gem,但他们不处理这个问题 [强制更新应用程序]

请指导