首页 文章

WSO2 am 1.10.0:删除然后重新创建API:“添加API时出错 . {CONTEXT}已存在重复的API

提问于
浏览
1

我添加了一个API,稍后在/ carbon管理控制台中将其删除 . 现在我想把它添加回去,它失败了“wso2 am 1.10.0:添加API时出错 . 已存在重复的API” .

我甚至手动转到数据库并手动从所有相关表中删除了API,包括AM_API . 我还手动删除了/ repository / deployment / server / synapse-configs / default / api下的相关文件 .

那么我还需要做什么呢?我可以在没有上述错误的情况下重新创建该API吗?这是这个版本的错误吗?

相关讨论:WSO2 API Manager - context management(这个问题是否会在版本1.10.0中重新出现?)

1 回答

  • 0

    首先要注意的是,您不应该通过碳管理控制台删除api . 您看到的xml表示只是运行时逻辑,下面的中介引擎在路由消息时引用它 . WSO2 API Manager中的API有三个方面 .

    • 存储在注册表数据库中的元数据

    • 存储在APIM数据库中的订阅等数据

    • 运行时API表示形式,存储为xml文件

    现在,首先发生的是,你刚刚删除了xml . 但是,告诉api经理关于api的所有其他数据仍然存在 . 这就是你得到初始错误的原因 . 手动删除元数据等并不容易 . 特别是因为您(以及包括我在内的任何其他用户)不知道存储它们的位置 .

    因此,删除api的最佳方法是从api发布者UI中删除它或通过api发布者的api删除它 . 即使您尝试通过以上两种方法删除,如果有任何有效订阅,它也会抱怨 . 所以,你也必须照顾他们 .

    I can think of the following to overcome this situation:

    • 通过发布者的rest api删除它(这是我能看到的最佳选项)

    • 如果#1不起作用,那么您必须首先检查APIM数据库中的所有条目并删除它们(我无法列出必要的表格等) . 然后,如果您熟悉注册表,则可以转到注册表浏览器并遍历到/ _system / governance / apimgt / applicationdata / collection并删除与您的api相关的资源 . 这可能有助于您清理系统 .

相关问题