Можем ли мы отобразить значение версии в URL-адресе конечной точки управляемого API-интерфейса WSO2? - PullRequest
0 голосов
/ 12 декабря 2018

Я создаю API с некоторым контекстным путем и версией v1:

enter image description here

Затем я пытаюсь предоставить изолированную программную среду и конечные точки производства, указывающие надвижки.Цель состоит в следующем:

PRO: http://localhost:9090/myapi/{version}

SB: http://localhost:8080/myapi/{version}

То естьсказать, что я хотел бы использовать поле версии в бэкэнд-пути.

enter image description here

Однако я получаю следующие ошибки:

Неверный URI конечной точки песочницы.Для получения подробной информации обратитесь к документации по конечной точке HTTP ESB WSO2.

Неверный URI конечной точки производства.Подробнее см. В документации по конечной точке HTTP ESB WSO2.

Есть ли способ сделать это?

ОБНОВЛЕНИЕ:

IЯ нашел следующую статью (https://docs.wso2.com/display/AM260/Map+the+Parameters+of+your+Backend+URLs+with+the+API+Publisher+URLs), которая объясняет, как отображать значения с использованием префикса uri.var. Так что теперь у меня в конечных точках есть:

PRO: http://localhost:9090/myapi/{uri.var.version}

SB: http://localhost:8080/myapi/{uri.var.version}

Проблема в том, что его значение пусто.

1 Ответ

0 голосов
/ 13 декабря 2018

Возможно, вам придется создать посредническую политику In Flow, чтобы получить версию API для URL-адреса конечной точки.

Например, вы можете создать файл с именем «VersionSequence.xml» и добавить в него следующее содержимое.Этот посредник последовательности позволит сохранить версию API REST в свойстве с именем "uri.var.version".

<?xml version="1.0" encoding="UTF-8"?>
<sequence name="VersionSequence" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    <property expression="$ctx:SYNAPSE_REST_API_VERSION" name="uri.var.version"/>
    <log level="custom">
        <property expression="get-property('uri.var.version')" name="APIVersion"/>
    </log>
</sequence>

Затем вы можете загрузить эту политику передачи в In-Flow раздела " Включить передачу сообщений ", когда реализует APIв диспетчере API.После этого вы можете установить конечную точку, как показано ниже, которая будет получать версию из свойства "uri.var.version", которое вы создали в потоке передачи.

http://localhost:9090/myapi/{uri.var.version}

...