是否可以在APICONNECT API中使用HTTP模式?

时间:2019-05-14 18:08:55

标签: apiconnect

我已经在api管理器和bluemix中尝试过,返回此错误:

API级别方案必须设置为仅使用“ https” enter image description here 网址API:http://54.91.49.213:9443/desarrollo/catalog/ordencompra/v1/grabar

是否可以在数据功能中进行配置? ,如果可以,配置如何?

2 个答案:

答案 0 :(得分:0)

如果您正在使用IBM Cloud中提供的免费ApiConnect,则必须对任何节点中的每个URL使用https(调用,代理和发布URL),此外,您也不能修改在该公共目录下运行的数据功能中的任何内容IBM Api Connect。

答案 1 :(得分:0)

您需要在DataPower上为HTTP to https代理创建另一个(新)域(我建议您在生产中不要这样做)。

  1. 创建多协议网关多协议网关策略

  2. 通常添加以下XSL。 (请注意,将my-awesome-lb替换为网关顶部的LB,或者如果是LB,则将其替换为DNS或IP地址)

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:dp="http://www.datapower.com/extensions"
                xmlns:regexp="http://exslt.org/regular-expressions"
                extension-element-prefixes="dp" exclude-result-prefixes="dp regexp">

  <xsl:template match="/">
    <xsl:variable name="protocol" select="dp:variable('var://service/protocol')" />

    <xsl:if test="$protocol != 'https'">
      <xsl:variable name="hostHeader" select="dp:http-request-header('Host')" />
      <xsl:variable name="newUrlLocation" select="concat('https://my-awesome-lb.com', concat(substring-after($hostHeader,'http://'), dp:variable('var://service/URI')))" />
      <dp:set-variable name="'var://service/routing-url'" value="$newUrlLocation" />
    </xsl:if>
  </xsl:template>

</xsl:stylesheet>
  1. 转到高级并确保您具有以下内容:

enter image description here