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

  1. @MarsApi
  2. public class DemoController {
  3.  
  4. @MarsWrite("userInfoServiceImpl")
  5. private UserInfoService userInfoService;
  6.  
  7. public String demo(UserInfoDTO userInfoDTO, HttpMarsRequest request){
  8. return "";
  9. }
  10. }

但是我们推荐DAP

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

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

  1. /**
  2. * 声明式接口,暴露给前端
  3. * 具体的业务逻辑,在这个interface的实现类里面
  4. */
  5. @MarsApi(refBean="要引用的bean的name")
  6. public interface UserInfoService {
  7.  
  8. /**
  9. * 引用具体业务逻辑,与Service彻底散藕
  10. *
  11. * 这个思路其实跟Dubbo接口差不多
  12. *
  13. * @param userInfoDTO
  14. * @return
  15. */
  16. @MarsReference(beanName = "要引用的bean的name(MarsApi注解如果配了refBean,这个就不需要了)",refName = "引用的bean里面的方法名称,不配默认为这个方法名")
  17. String login(UserInfoDTO userInfoDTO);
  18. }

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

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

  1. /**
  2. * 声明式接口,暴露给前端
  3. * 具体的业务逻辑,在Service里面
  4. */
  5. @MarsApi(refBean="要引用的bean的name")
  6. public interface UserInfoApi {
  7.  
  8. /**
  9. * 引用具体业务逻辑,与Service彻底散藕
  10. *
  11. * @param userInfoDTO
  12. * @return
  13. */
  14. @MarsReference(beanName = "要引用的bean的name(MarsApi注解如果配了refBean,这个就不需要了)",refName = "引用的bean里面的方法名称,不配默认为这个方法名")
  15. String loginApi(UserInfoDTO userInfoDTO);
  16.  
  17. }

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

@RequestMethod注解

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

@RequestMethod(ReqMethod.POST) 注解

只支持POST和GET

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

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