#oracle #osb
#Oracle #osb
Вопрос:
Я новичок в OSB и пытаюсь создать прокси-службу, которая принимает подстановочные знаки в качестве URI конечной точки запроса, а затем вызывает бизнес-службу с динамической маршрутизацией.
например, служба прокси-сервера должна принимать — /someservice/wildcard1/service, а также /someservice/wildcard2/service и должна иметь возможность вызывать одну бизнес-службу с динамической маршрутизацией как http://businessip:port/someservice/wildcard1/service и http://businessip:port/someservice/wildcard2/service соответственно.
Комментарии:
1. OSB не обладает такой функциональностью. Отработайте другой способ передачи значения ‘wilcardX’ и заставьте его маршрутизировать его динамически таким образом.
Ответ №1:
В OSB OOTB нет функциональности для предоставления одного артефакта прокси-службы под двумя разными URI конечной точки. Ближайшим обходным путем для того, чего вы пытаетесь достичь, было бы использование части запроса URI. Более подробно, вам нужно будет вызвать вашу службу, предоставляющую подстановочный знак в части запроса URI:
/someservice/service?wildcard=1
/someservice/service?wildcard=2
затем в конвейере запроса вы должны извлечь значение подстановочного знака из контекстной переменной
$inbound/ctx:transport/ctx:request/http:query-parameters/http:parameter[@name=»подстановочный знак»] / @value
и использовать его либо для:
- переопределить контекстную переменную, отвечающую за исходящий
URI ($outbound/ctx:transport/ctx:uri) и маршрут к BusinessService - построение пути обслуживания в динамической маршрутизации
Ответ №2:
Это не совсем идеальный ответ, но я прочитал действительно интересную статью об использовании OSB для создания интерфейсов RESTful: http://www.oracle.com/technetwork/articles/soa/architecting-restful-services-083025.html
Это может в некоторой степени относиться к возникшей у вас проблеме, поскольку в статье есть способ выделить часть пути URI, а затем использовать его в качестве уровня маршрутизации к другой прокси-службе.
Тем не менее, у вас, вероятно, возникнут некоторые проблемы по мере роста, потому что вам придется обновлять этот прокси-сервер каждый раз, когда вам нужно его изменить, добавить или удалить новую конечную точку на основе этой архитектуры, поэтому вы можете пересмотреть то, как вы используете эту службу, или, по крайней мере, убедиться, чточто работа, которую вы в нее вкладываете, является одноразовой, чтобы в итоге не получилось что-то вроде 20 или 50 отдельных ветвей в вашей прокси-службе.
Комментарии:
1. Если вы готовы пожертвовать некоторой определенностью во время компиляции, вы можете использовать динамические маршруты на основе URL-адреса.