Менеджер API пользовательских политик - PullRequest
1 голос
/ 18 февраля 2020

Я пытался создать собственную политику, с целью маски службы:

Оригинальные службы в API:

http://API/v1/profile
http://API/v1/account

С маской:

http://API/v1/user-profile
http://API/v1/user-account

И комбинация ответа пользователя Bee это решение для этой проблемы:

<switch source="get-property('axis2', 'REST_URL_POSTFIX')">
    <case regex="/v1/kyc-profile">
        <property name="REST_URL_POSTFIX" value="/v1/profile" scope="axis2"/>
    </case>
    <case regex="/v1/kyc-account">
        <property name="REST_URL_POSTFIX" value="/v1/account" scope="axis2"/>
    </case>
</switch>

Но это решение работает только там, где службы stati c, но у меня есть другие службы, подобные:

http://API/v1/user-profile/{id-user}/details
http://API/v1/user-profile/{id-user}?expand=some_information

Для последней службы у меня есть это:

<switch source="get-property('axis2', 'REST_URL_POSTFIX')">
   <case regex="v1/user-profile/[\/\w\W]*">
        <property name="REST_URL_POSTFIX" value="/v2/cliente/{id-user}?expand=some_information" scope="axis2"/>
   </case>
</switch>

[/ \ w \ W] * Эта часть является регулярным выражением для {id-user }? expand = some_information и аналогичные.

Проблема заключается в следующем: мне нужно положить dynamici c value , поскольку свойство value (<property name="REST_URL_POSTFIX" value = "THIS" scope="axis2"/>) принимает этот текст, например:

Служба до полиса cie

http://API/v1/user-profile/1?expand=some_information

Служба после полиса cie

http://API/v1/user-profile/{id-user}?expand=some_information

Мои вопросы:

  1. Как указать значение c для услуг, аналогичное: http://API/v1/user-profile/{id-user}?expand=some_information?
  2. Для другой услуги, http://API/v1/user-profile/{id-user}/details У меня есть Подобная ситуация, Как решить?

1 Ответ

1 голос
/ 18 февраля 2020

В своей последовательности передачи попробуйте изменить внутренний URL-адрес следующим образом.

http://API/v1/user-profile/{uri.var.id-user}?expand=some_information

Пример:

<switch source="get-property('axis2', 'REST_URL_POSTFIX')">
   <case regex="v1/user-profile/[\/\w\W]*">
        <property name="REST_URL_POSTFIX" value="/v2/cliente/{uri.var.id-user}?expand=some_information" scope="axis2"/>
   </case>
</switch>
...