Martian 原名叫 Mars-Java,为了避免跟 java 商标产生冲突,所以改名了。
在遭受了 100 多条评论后,我认识到了一些问题,其中最大的就是 接口受理的请求方式太少了,在某些场景下不够用。
首先呢,我得在解释一次:Martian 是可以接收任意 http 请求的,只不过 api 接口只受理这么几种,我的限制不是做在服务上的,而是做在接口上的,所以呢 ajax 发出的那个 option 是可以正常接收并响应 200 的,完全没问题。
希望大家以后不要在误解咯。
接口受理的请求方式更多了,新增了 PUT 和 DELETE,也就是目前为止,接口可以受理 GET,POET,DELETE,PUT 四种请求方式了, [为什么不全支持,暂时不予解释] 。
API 新增 @MarsReference 注解
很简单,跟之前的 GET,POST 一样设置,只不过 ReqMethod 里面多了两个选项。
@RequestMethod(ReqMethod.PUT)
String expUploadRequest(ExpVO expVO)
我们目前的声明式 API,采用的如下机制:
这样会出现一些局限,那就是一个 interface 只能对应一个实现类,玩起来就像是 service 的父接口一样, 为了改善这个情况,我提供了一个新的注解 @MarsReference
这个注解怎么用呢?请看下面示例,注意看注释和双引号里的汉字
/**
* 老套路,正常声明一个接口
*/
@MarsApi(refBean = "这里还是可以引用 bean")
public interface ExpApi {
/**
* get 请求示例
* http://127.0.0.1:8080/expGetRequest?name=张三&names=王五&names=赵六
* @param expVO
* @return
*/
@MarsReference(beanName = "这里的规则,请看下面第一点",refName = "这里的规则,请看下面第二点",refType = RefType.METHOD)
List<ExpVO> expGetRequest(ExpVO expVO);
}
从这一刻开始,interface 和实现类彻底解耦了,他们不再是父子关系(父子关系那一套也一样兼容),一个 interface 可以引用多个 bean 里面的方法或者属性,在一定程度上增加了 interface 的灵活性。
Martian 官网:http://www.mars-framework.com
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.