在你的Service的父接口上 添加MarsApi注解,即可对外开放一个接口

这个思路其实跟Dubbo接口差不多

/**
 * 声明式接口,暴露给前端
 * 具体的业务逻辑,在这个interface的实现类里面
 */
@MarsApi
public interface UserInfoService {

    /**
     * 引用具体业务逻辑,与Service彻底散藕
     *
     * 这个思路其实跟Dubbo接口差不多
     *
     * @param userInfoDTO
     * @return
     */
    @MarsReference(beanName = "要引用的bean的name",refName = "引用的bean里面的方法名称")
    String login(UserInfoDTO userInfoDTO);
}

方法的返回类型,参数个数不限,参数类型必须是自定义对象或者Map

如果觉得上面的方式不太习惯,也可以单独创建一个interface作为一个API

/**
 * 声明式接口,暴露给前端
 * 具体的业务逻辑,在Service里面
 */
@MarsApi
public interface UserInfoApi {

    /**
     * 引用具体业务逻辑,与Service彻底散藕
     *
     * @param userInfoDTO
     * @return
     */
    @MarsReference(beanName = "要引用的bean的name",refName = "引用的bean里面的方法名称")
    String loginApi(UserInfoDTO userInfoDTO);

}

这种方式,API的方法和他引用的那个方法,参数列表可以不一样, 框架会自动把API的参数的值赋值到引用的那个方法的参数列表

引用的方法甚至可以无参,参数目前只支持自定义对象和Map

除此之外,API还可以引用Bean里面的属性

@MarsApi
public interface UserInfoApi {

    @MarsReference(beanName = "要引用的bean的name",refName = "引用的bean里面的属性名称",refType = RefType.PROPERTY)
    String loginApi();

}

@RequestMethod注解

API的请求方式默认是get,如果想改成post或者其他,可以在方法上加上

@RequestMethod(ReqMethod.POST) 注解

只支持POST和GET

前端访问API接口的方式如下:

http://ip:端口号,或者域名/Api里的方法名称

results matching ""

    No results matching ""