我是OSB的新手,并尝试创建一个接受通配符的代理服务,因为它的请求端点URI和inturn通过动态路由调用业务服务。
例如,代理服务应该接受 - / someservice / wildcard1 / service 以及 / someservice / wildcard2 / service ,并且应该能够接受一个业务服务动态路由分别为http://businessip:port/someservice/wildcard1/service和http://businessip:port/someservice/wildcard2/service。
答案 0 :(得分:1)
没有OSB OOTB功能可以在两个不同的端点URI下公开一个代理服务工件。您尝试实现的最接近的解决方法是使用URI的查询部分。更详细地说,您需要在URI的查询部分调用您的服务提供通配符:
/someservice/service?wildcard=1
/someservice/service?wildcard=2
然后在请求管道中,您将从上下文变量中提取通配符值 $呼入/ CTX:传输/ CTX:请求/ HTTP:查询参数/ HTTP:参数[@名称= “通配符”] / @值 并用它来:
答案 1 :(得分:1)
这不是完美的答案,但我读了一篇关于使用OSB创建RESTful接口的非常有趣的文章:http://www.oracle.com/technetwork/articles/soa/architecting-restful-services-083025.html
这可能会对您遇到的问题有所帮助,因为该文章有一种方法来分离部分URI路径,然后将其用作另一个代理服务的路由层。
也就是说,随着这个问题变得越来越大,您可能会遇到一些问题,因为每次需要根据此架构更改,添加或删除新端点时,您都必须更新此代理,因此您可能希望重新审视你如何使用这项服务,或者至少确保你所投入的工作是一件又一件事,以免你最终得到20或50-您的代理服务上的单独分支。