繁体   English   中英

wso2 API Manager-如何使用模板发布API?

[英]wso2 API Manager - How to publish an API using a template?

我一直在试验wso2 API Manager 1.8.0,以将后端(http / post)系统公开为REST API。 我能够使其正常运行,但是我不得不通过Service Bus源代码视图编辑API配置,如下所示。 我希望使用与使用API​​ Publisher发布的所有新API相同的模板,以确保我们不必在每次创建API时都编辑服务总线源。

请提出您可能使用过的任何选项。

  <inSequence> <script language="js" key="transform_script" function="buildQueryString"/> <property name="uri.query" expression="get-property('queryString')"/> <filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION"> <then> <property name="Authorization" expression="fn:concat('Basic ', base64Encode('testuser:testuser@1'))" scope="transport"/> <send> <endpoint name="testuser--AddNumbers_APIsandboxEndpoint_0"> <http method="POST" uri-template="https://testhost:8443/test/http/6731cc67-3850-4b9b-b486-62cf2a664b46?${uri.query}"/> </endpoint> </send> <bam> <serverProfile name="bam-profile"> <streamConfig name="org_wso2_apimgt_statistics_destination" version="1.0.0"/> </serverProfile> </bam> </then> <else> <property name="Authorization" expression="fn:concat('Basic ', base64Encode('testuser:testuser@1'))" scope="transport"/> <send> <endpoint name="testuser--AddNumbers_APIsandboxEndpoint_0"> <http method="POST" uri-template="https://testhost:8443/test/http/6731cc67-3850-4b9b-b486-62cf2a664b46?${uri.query}"/> </endpoint> </send> <bam> <serverProfile name="bam-profile"> <streamConfig name="org_wso2_apimgt_statistics_destination" version="1.0.0"/> </serverProfile> </bam> </else> </filter> </inSequence> <outSequence> <payloadFactory media-type="json"> <format> { "apiName": "$1", "apiVersion": "$2", "runResponse": { "runId": "$3", "runStart": "$4", "runEnd": "$5", "flowResponse": "$6", "flowResult": "$7" } } </format> <args> <arg evaluator="xml" expression="get-property('apiName')"/> <arg evaluator="xml" expression="get-property('apiVersion')"/> <arg evaluator="json" expression="$.runResponse.runReturn.item[0].value"/> <arg evaluator="json" expression="$.runResponse.runReturn.item[3].value"/> <arg evaluator="json" expression="$.runResponse.runReturn.item[4].value"/> <arg evaluator="json" expression="$.runResponse.runReturn.item[5].value"/> <arg evaluator="json" expression="$.runResponse.runReturn.item[6].value"/> </args> </payloadFactory> <property name="messageType" value="application/json" scope="axis2"/> <send/> </outSequence> 

<APIM_HOME>/repository/resources/api-templates/default_api_template.xml文件下,似乎有一些关于API Manager较旧版本的文档。

使用API​​ Manager 1.8.0时,我找不到相同的文档页面,但是编辑Velocity_template.xml可以用于非原型API定义。

我仍在尝试将我的要求纳入其中。

实际上,您想对消息进行一些转换。 APIM 1.8支持中介扩展。 您可以在其中添加自己的输入,输出和故障序列,并在那里进行转换。 此中介扩展支持全局和每个api。 您可以在此处找到详细信息[1],因此,如果创建全局级别的序列,它将应用于所有api。在这种情况下,您必须创建一个全局序列以添加基本的oauth相关内容,并创建一个全局out序列以添加有效负载工厂相关的东西

1. https://docs.wso2.com/display/AM180/Adding+Mediation+Extensions

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM