我正在尝试通过CA-API网关配置一些API。
然而,CA产品似乎在很大程度上基于UI交互JSP。我已经看到他们还提供了REST接口。
有没有人使用基于JAVA的UI之外的其他东西来设置完整的API?
理想情况下,我希望我的完整配置作为代码。
api Gateway的REST API似乎提供了很多get和post功能,但我一直无法使其正常工作:
对CA实例(https://localhost:9443/restman/1.0/services/template)执行get模板会产生以下结果:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<l7:Item xmlns:l7="http://ns.l7tech.com/2010/04/gateway-management">
<l7:Name>SERVICE Template</l7:Name>
<l7:Type>SERVICE</l7:Type>
<l7:TimeStamp>2017-06-13T07:30:22.487Z</l7:TimeStamp>
<l7:Link rel="self" uri="https://d7a66e5db02e:9443/restman/1.0/services/template"/>
<l7:Link rel="list" uri="https://d7a66e5db02e:9443/restman/1.0/services"/>
<l7:Resource>
<l7:Service>
<l7:ServiceDetail folderId="FolderID">
<l7:Name>My New Service</l7:Name>
<l7:Enabled>false</l7:Enabled>
</l7:ServiceDetail>
<l7:Resources>
<l7:ResourceSet tag="policy">
<l7:Resource type="policy">Policy XML</l7:Resource>
</l7:ResourceSet>
</l7:Resources>
</l7:Service>
</l7:Resource>
</l7:Item>
通过阅读模板,我希望能够使用post和以下主体创建一个新的已发布服务:
<l7:Service>
<l7:ServiceDetail folderId="0000000000000000ffffffffffffec76">
<l7:Name>MyNewService</l7:Name>
<l7:Enabled>false</l7:Enabled>
</l7:ServiceDetail>
<l7:Resources>
<l7:ResourceSet tag="policy">
<l7:Resource type="policy">Policy XML</l7:Resource>
</l7:ResourceSet>
</l7:Resources>
</l7:Service>
然而,对https://localhost:9443/restman/1.0/services的帖子得出了如下结论:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>400 Bad Request</title>
</head>
<body>
<h1>Bad Request</h1>
<h3>The request sent by the client was syntactically incorrect.</h3>
</body>
</html>
对于我来说,没有明显的方法来调试实际失败的东西。我希望能够在某个地方的日志中跟踪错误,但找不到任何文档或示例。
发布于 2019-04-15 07:56:48
下面的方法对我很有效:
services查询您要创建的对象类型,例如GET / RESTMAN /1.0//{ID}或使用GET
中的服务此子元素
如果您想要更新现有服务:
中的版本查询现有的版本号(和ID)
/{ID
如果版本不匹配,更新将失败。
发布于 2020-01-13 18:55:08
本机CA Policy manager应用程序没有很好的替代方案,但您可以使用REST管理API进行更新,并在不同环境之间移动策略代码。所有策略都是用XML编写的,因此您可以将它们导出到一个文件中,并在您的普通版本控制系统中对其进行管理。你可以使用像Jenkins API这样的部署工具,在那里你可以配置自定义插件来将其与https://jenkins.io部署集成,但你仍然必须依赖RESTMAN API。
希望这能有所帮助!
https://stackoverflow.com/questions/44516850
复制