簡體   English   中英

WSO2 APIM未發布的API的自定義序列/設置變量

[英]WSO2 APIM Custom sequences for non published APIs / Setting variable

我們已經定義了默認的自定義序列管理不同網關,描述在這里

我們已經按照文檔創建全局連接中的說明安裝了序列

該序列僅從環境中讀取2個變量,並用於構建端點URL。 這是代碼:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="WSO2AM--Ext--In">
        <property name="uri.var.host" expression="get-property('system','host')" />
        <property name="uri.var.port" expression="get-property('system','port')" />
</sequence>

這與發布的API配合正常,但是如果我們將API降級為原型(無需訂閱即可直接使用),則將無法正常工作。

我們嘗試過:

  • 要將其安裝為API級別的Message Mediaton策略

  • /repository/resources/api_templates/prototype_template.xml/repository/resources/api_templates/prototype_template.xml設置參數

我們測試時的錯誤報告主機名為空(因為它嘗試讀取變量,並且為空)

您知道如何在原型環境中設置環境變量嗎?

在“原型端點”中部署API時,將使用velocity_template.xml創建API實現。

該模板為PROTOTYPE和PUBLISHED API生成不同的代碼。

我被迫包括APIManagerExtensionHandler(這是處理“自定義擴展序列”的處理程序),並在速度模板中添加以下內容(在處理程序添加循環之后)。

patch --forward $WSO2_PATH/$1/repository/resources/api_templates/velocity_template.xml <<EOF
*** velocity_template.xml   2018-06-02 11:04:42.474476581 +0200
--- velocity_template.xml.patched   2018-06-02 11:07:28.495395384 +0200
***************
*** 361,366 ****
--- 361,369 ----
      #end
  </handler>
  #end
+ #if(\$apiStatus == 'PROTOTYPED')
+ <handler class="org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler"/>
+ #end
  </handlers>
          #end
          #end
EOF

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM