Mule-APIkit с baseUriParameter усекает путь к ресурсу, что приводит к ошибке "ресурс не найден"

Может кто-нибудь предложить / исправить меня здесь о том, как заставить APIkit Router работать с baseUriParameter, Если путь в коннекторе прослушивателя HTTP жестко /api/process/30001/*, все работает отлично. APIKit Router может маршрутизировать запрошенный путь к ресурсу. Но, когда есть путь в коннекторе HTTP Listener Connector, как /api/process/{clientID}/*выдается ошибка в APIkit Router как No resource found,

Из приведенной ниже стековой трассировки видно, что путь к ресурсу запроса усекается, например: /sample становится просто ple и я не мог найти причину почему. Через отладку я мог видеть полный URI запроса. Изображение из режима отладки, чтобы увидеть полный путь запроса.

Я пробовал несколько других вариантов, таких как:

  1. Проверка 'сохранить RAM базы URI' в конфигурации маршрутизатора
  2. Снимите флажок "Разбор запроса" на вкладке " Дополнительно " в HTTP Listener Connector

Я также проверил это, чтобы убедиться, что мой RAML соответствует raml -template-uris и uriparams.

Я нашел это в документации MuleSoft:

В API Gateway Runtime 2.x и более ранних версиях APIkit разработан для очень тесной работы с интерфейсами RAML, но не импортирует автоматически следующие элементы из определения RAML:

securitySchemes

протоколы

baseUriParameters

Итак, как мне импортировать baseUriParameters? Как мне заставить это работать?

Я застрял с этой проблемой в течение достаточно долгого времени, поэтому любая помощь очень ценится. Пожалуйста, поправьте меня, если я что-то пропустил. Большое спасибо!

#%RAML 1.0
title: Test API
baseUri: /api/process/{clientID}
baseUriParameters: 
  clientID:
   type: number
   example: 300001

/sample:
  get:
    responses:
      200:
        body:
          application/json: 

течь:

 <http:listener-config xmlns:http="http://www.mulesoft.org/schema/mule/http" name="baseuriprameter-apikit-httpListenerConfig" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration" />
<apikit:config xmlns:apikit="http://www.mulesoft.org/schema/mule/apikit" name="baseuriprameter-apikit-config" raml="baseuriprameter-apikit.raml" consoleEnabled="false" doc:name="Router" keepRamlBaseUri="false"/>
<flow name="baseuriprameter-apikit-main">
    <http:listener xmlns:http="http://www.mulesoft.org/schema/mule/http" config-ref="baseuriprameter-apikit-httpListenerConfig" path="/api/process/{clientID}/*" doc:name="HTTP" parseRequest="false"/>
    <apikit:router xmlns:apikit="http://www.mulesoft.org/schema/mule/apikit" config-ref="baseuriprameter-apikit-config" doc:name="APIkit Router"/>
    <exception-strategy ref="baseuriprameter-apikit-apiKitGlobalExceptionMapping" doc:name="Reference Exception Strategy"/>
</flow>
<flow name="baseuriprameter-apikit-console">
    <http:listener xmlns:http="http://www.mulesoft.org/schema/mule/http" config-ref="baseuriprameter-apikit-httpListenerConfig" path="/console/*" doc:name="HTTP" parseRequest="false"/>
    <apikit:console xmlns:apikit="http://www.mulesoft.org/schema/mule/apikit" config-ref="baseuriprameter-apikit-config" doc:name="APIkit Console"/>
</flow>
<flow name="get:/sample:baseuriprameter-apikit-config">
    <set-payload value="Hello World!" doc:name="Set Payload"/>
</flow>

трассировки стека:

 WARN  2018-06-11 19:52:27,452 [[baseuriprameter-apikit].baseuriprameter- 
 apikit-httpListenerConfig.worker.01] org.mule.module.apikit.Configuration: 
No matching patterns for URI ple
ERROR 2018-06-11 19:52:28,082 [[baseuriprameter-apikit].baseuriprameter- 
apikit-httpListenerConfig.worker.01] 
org.mule.module.apikit.MappingExceptionListener: 

**************************************************
Message               : ple
Payload               : {NullPayload}
Payload Type          : org.mule.transport.NullPayload
Element               : /baseuriprameter-apikit-main/processors/0 @ 
baseuriprameter-apikit:baseuriprameter-apikit.xml:11 (APIkit Router)
Element XML           : <apikit:router 
xmlns:apikit="http://www.mulesoft.org/schema/mule/apikit" config- 
ref="baseuriprameter-apikit-config" doc:name="APIkit Router"> 
</apikit:router>
--------------------------------------------------------
Root Exception stack trace:
org.mule.module.apikit.exception.NotFoundException: ple
atorg.mule.module.apikit.AbstractConfiguration$2.load(AbstractConfiguration.java:178)atorg.mule.module.apikit.AbstractConfiguration$2.load(AbstractConfiguration.java:169)
atcom.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)atcom.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
atcom.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)
at org.mule.module.apikit.AbstractRouter.processRouterRequest(AbstractRouter.java:177)
at org.mule.module.apikit.AbstractRouter.processBlockingRequest(AbstractRouter.java:104)
at org.mule.module.apikit.AbstractRouter.processBlocking(AbstractRouter.java:98)

0 ответов

Другие вопросы по тегам