1、定义总线发送API
bus_send 定义了api的入口,当满足请求规范时会路由到sequence 【 bus_send_main】,当不满足请求规范时,会路由到sequence 【bad_request】
2、模块化 sequence 【bus_send_main】
bus_send_main 序列由以下sequence组成,路由从上到下
<sequence key="request_reception"/>
<sequence key="call_auth_server"/>
<sequence key="call_service_resource_catalog"/>
<sequence key="request_transform"/>
<sequence key="call_back_end"/>
<sequence key="response_transform"/>
<sequence key="success_response"/>
2.1请求接收
1、根据请求body类型(json/soap)获取请求头,方便后续认证鉴权和请求转换
2、校验必填请求头信息
3、校验报文是否符合规范
2.2 认证鉴权
1、通过registry获取配置的认证服务器地址
2、调用认证服务器,认证请求方的合法性
2.3 查询服务资源目录
1、通过请求中携带的服务资源uuid获取实际的服务资源信息
2.4 请求转换
1、根据服务资源支持的消息类型,将请求的body转为服务资源支持的body类型和格式。
请求转换支持
-
json 转json
-
json转soap
-
soap转json
-
soap转soap
2.5 服务调用
将转换后的请求进行服务调用
1、如果是异步调用,则存入消息队列,由消费者消费后进行服务调用
2、同步调用时,将转换后的body 通过http_endpoint 进行服务调用
2.6 响应转换
响应转换是根据响应方消息类型和格式转成发送方可接收的消息类型和格式,目前支持
-
json 转json
-
json转soap
2.7 响应返回
响应返回主要是使用respond 组件即可