URI конечной точки с подстановочным знаком в Oracle Service Bus (OSB)

Я новичок в OSB и пытаюсь создать прокси-сервис, который принимает подстановочный знак в качестве URI конечной точки запроса и, в свою очередь, вызывает бизнес-сервис с динамической маршрутизацией.

например, прокси-служба должна принимать - /someservice/wildcard1/service, а также /someservice/wildcard2/service и должна иметь возможность вызывать одну бизнес-службу с динамической маршрутизацией как http://businessip:port/someservice/wildcard1/service и http://businessip:port/someservice/wildcard2/service соответственно.


person Gajanand Jha    schedule 13.10.2016    source источник
comment
OSB не имеет такой функции. Разработайте другой способ передать значение 'wilcardX' и заставить его динамически маршрутизировать его таким образом.   -  person Wesley De Keirsmaeker    schedule 21.10.2016


Ответы (2)


Отсутствует функциональность OSB OOTB для предоставления одного артефакта прокси-службы под двумя разными URI конечной точки. Ближайшим обходным путем для того, чего вы пытаетесь достичь, было бы использование части запроса URI. Более подробно, вам нужно будет вызвать свою службу, предоставив подстановочный знак в части запроса URI:

/someservice/service?wildcard=1
/someservice/service?wildcard=2

затем в конвейере запросов вы должны извлечь значение подстановочного знака из переменной контекста $inbound/ctx:transport/ctx:request/http:query-parameters/http:parameter[@name="wildcard"]/@value и использовать его либо для:

  1. переопределить переменную контекста, отвечающую за исходящий
    URI ($outbound/ctx:transport/ctx:uri) и маршрут к BusinessService
  2. построить путь обслуживания в динамической маршрутизации
person Piotr Godlewski    schedule 13.10.2016

Это не совсем идеальный ответ, но я прочитал действительно интересную статью об использовании OSB для создания интерфейсов RESTful: http://www.oracle.com/technetwork/articles/soa/architecting-restful-services-083025.html

Это может в некоторой степени относиться к вашей проблеме, поскольку в статье есть средства для разделения части пути URI, а затем использовать его в качестве уровня маршрутизации для другой прокси-службы.

Тем не менее, у вас, вероятно, возникнут некоторые проблемы по мере того, как он станет больше, потому что вам придется обновлять этот прокси-сервер каждый раз, когда вам нужно изменить его, добавить или удалить новую конечную точку на основе этой архитектуры, поэтому вы можете пересмотреть, как вы используете этот сервис, или, по крайней мере, убедитесь, что работа, которую вы в него вкладываете, представляет собой разовую работу, иначе вы получите что-то вроде 20 или 50 отдельных ветвей на вашем прокси-сервисе.

person Nick Klauer    schedule 13.10.2016
comment
Если вы готовы пожертвовать некоторой уверенностью во время компиляции, вы можете использовать динамические маршруты на основе URL-пути. - person Trent Bartlem; 14.10.2016