任何时候我们都不能避免偏见,即便是讨论技术也是如此,并没有一种技术真的能绝对。
英国作家斯威夫特在《格列佛游记》里以戏谑的语调所描述的大头派和小头派(其争论焦点是吃鸡蛋剥皮时究竟应该从大头敲破还是从小头敲破)原本是为了讥讽英国议会里那些因小题大做而分党立派的荒唐议员,然而事实上我们每个人都是大头派或小头派的一员,只是在某些问题上属于大头派,在另一些问题上属于小头派而已。我们必须承认的是,斯威夫特的寓言所揭示的意义远比作者的意图本身更为深刻。
定义Web API规范
Web开发中,API开发是程序员们非常熟悉的,而使用SpringBoot构建Web API有几种选择,要么使用spring-boot-starter-jersey构建RESTful风格的Web API,要么选择spring-boot-starter-hateoas构建更加有关联性和相对“智能”的Web API,但是,引入任何一种框架都会带来学习成本,如果是一个人开发问题不大,而如果是团队协作开发,沟通成本就会很高。
所以,我们可以选择相对宽松的RPC over HTTP的方式来构建Web API。我们先定义一个简单的json响应格式:
{
"code" : 0,
"msg" : "XXXXX",
"data" : { ... }
}
其中,code表示调用结果的状态,0表示成功,非0表示失败,并且可以根据状态传入需要提示的字段,data字段用于规范定义特定于Web API的响应内容。
实战
新建Spring Boot项目
我们就可以根据规范来构建我们的API了,参考boot-start,或者使用http://start.spring.io构建新项目,并依赖spring-boot-starter-web模块。
示例服务
这里我们创建一个简单的查询服务QueryUserService,如下代码:
@Service
public class QueryUserService {
public List<Man> query(){
Man man1 = new Man("mickjoust","1","111111");
Man man2 = new Man("mia","1","6666666");
Man man3 = new Man(