统一接口模块详细设计
功能描述
    对Gaea对外通信需求进行统一处理,实现接口调用的转发,并提供告警信息推送、权限管理、接口日志记录等功能。
    向上提供的接口包括用户注册、认证码回、统一接口调用接口;向下提供消息发送接口。
接口功能
    所有接口地址均符合Restful接口规则,请求参数及返回数据均为xml格式。
用户注册接口
    对外提供用户注册功能,注册用户须为本公司员工,使用进行注册,注册成功后,发送带有唯一认证码的邮件到注册邮箱。
    请求参数:
        ,手机号
    返回数据:
        注册成功或失败通知
    流程图:
   
认证码回接口
    对外提供认证码回功能,回认证码需提供注册邮箱,系统发送带有新生成的认证码到邮件到注册邮箱。
    请求参数:
       
    返回数据:
        发送邮件通知
    流程图:
       
统一接口调用接口
    Gaea系统需提供项目订阅、项目配置、项目列表获取、项目配置等功能接口,这些接口分布在不同的模块,为了减少重复开发,故引入此接口,实现对其他接口的统一调用。
    此接口实现对其他接口的调用转发,并把其他接口返回的数据进行返回。
    请求参数:
        邮箱、认证码、要调用接口的接口名,要调用接口的参数。
    返回数据:
        所调用接口返回的数据。
    流程图:
       
告警信息推送功能
    该功能接收消息推送请求,根据消息推送目的地调用不同的方法,将告警信息推送到不同的目的地。
    因不同目的地需要的格式不同,故可定义多个接口,每种消息目的地每个接口。
restful接口调用实例    支持消息推送到邮箱、短信、、第三方接口等目的地。
    流程图:
       
   
权限管理功能
    对注册用户可订阅的项目范围进行权限控制,如广东的同事无权对北京的项目进行订阅。
接口日志记录
    对接口调用日志进行记录,记录的信息包括接口调用人、调用时间、请求参数和返回数据等信息。
模块管理
    因统一接口调用接口主要负责进行消息转发,故需维护以下两个关联关系。
    1.接口名与模块之间对应关系
    2.模块与模块地址对应关系
    统一接口调用接口收到请求后,解析要调用的接口名,获取此接口名所属的模块,进而获取到此模块的接口地址,只有获取到接口地址后,才能进行消息转发。
    模块接口地址需在消息转发器(nginx)中进行配置。
项目构建
    使用maven进行构建,将接口调用转发、消息推送等功能进行单独构建,作为jar包进行引入。