首先我们是支持传统的Controller的

@MarsApi
public class DemoController {

    @MarsWrite("userInfoServiceImpl")
    private UserInfoService userInfoService;

    public String demo(UserInfoDTO userInfoDTO, HttpMarsRequest request){
        return "";
    }
}

但是我们推荐DAP

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

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

/**
 * 声明式接口,暴露给前端
 * 具体的业务逻辑,在这个interface的实现类里面
 */
@MarsApi(refBean="要引用的bean的name")
public interface UserInfoService {

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

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

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

/**
 * 声明式接口,暴露给前端
 * 具体的业务逻辑,在Service里面
 */
@MarsApi(refBean="要引用的bean的name")
public interface UserInfoApi {

    /**
     * 引用具体业务逻辑,与Service彻底散藕
     *
     * @param userInfoDTO
     * @return
     */
    @MarsReference(beanName = "要引用的bean的name(MarsApi注解如果配了refBean,这个就不需要了)",refName = "引用的bean里面的方法名称,不配默认为这个方法名")
    String loginApi(UserInfoDTO userInfoDTO);

}

参数目前只支持自定义对象和Map

@RequestMethod注解

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

@RequestMethod(ReqMethod.POST) 注解

只支持POST和GET

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

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

results matching ""

    No results matching ""