首先我们是支持传统的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里的方法名称