写点什么

80 后程序员感慨中年危机,如何设计一个优雅的 RESTFUL 的接口

发布于: 2 小时前

前言

前几天我上班路上,和小区门口开车的师傅闲聊,发现他们虽然学历不高,但挣钱的途径不少,比如固定接送多位客户,然后能通过朋友圈拓展新客户,而且通过客户口口相传,也能不断拉到生意,算下来每月也能挣 1 万 5 出头,好的话能有 2 万,我在上海,做 IT 的要月入 2 万,如果不是 996,估计本科毕业还得干几年。


可能有人会说了,他们第一不交金,第二未必稳定,但这批师傅学历也就高中,对于这个学历来说,这个收入不能算低。反观我们,可能不少做 IT 的人,一心只做技术,只拿固定工资,不去拓展挣钱途径,或者虽然到处找活干,但和路边装修队相比,只是多了份固定工资,总之很难突破收入瓶颈。


所以我们 IT 人除了在不断提升自己的技术能力之外,更得积极主动地拓展挣钱途径,本文就将围绕这点展开。


接口各种各样。正如一千个人眼里有一千个鲁迅。RESTFUL 接口究竟长什么样子呢?

3.1 HTTP 的方法

HTTP 里面有几个基本的方法。我们利用这些约定一些规范。



从表中,如果我们可以清楚看到当我们的接口是关于获取数据,那么我们使用 GET 方法。如果我们可以清楚看到当我们的接口是关于插入数据,那么我们使用 POST 方法。如果我们可以清楚看到当我们的接口是关于更新数据,那么我们使用 PUT 方法。如果我们可以清楚看到当我们的接口是关于删除数据,那么我们使用 DELECT 方法。

3.2 名词

在上面我们已经知道接口在什么时候需要什么方法,那么我们现在来进入到设计接口的第二步。


我们看看线上网站的接口是怎么样的。



图中我们可以看到有个 v1 ,他代表的是版本号,所以我们在设计接口的时候可以在将版本号写上,用 v1、v2、v3 等表示。


我们发现他的接口都是名词。所以我们知道 RESTFUL 接口使用的是名词。比如我们设计一个获取数据的接口,我们可这样设计


/v1/list 
复制代码


上面接口是获取所有数据。


当我们需要列表中的一条数据,我们可以这样设计


/v1/list/1 
复制代码


上面接口表示获取是列表的 1 号数据,我们可以获取 2 号、3 号数据等等,只要改变数字即可。

3.3 组合

结合上面两步,我们就可以设计出增删改查的 restful 接口了。


3.4 应用

以下是源码的 demo


import lombok.extern.slf4j.Slf4j;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication@RestController@Slf4jpublic class LsbRestfulApplication {
public static void main(String[] args) { SpringApplication.run(LsbRestfulApplication.class, args); }
/** * 得到所有列表 * @return */ @RequestMapping(value = "/v1/list",method = RequestMethod.GET) public String getList(){ log.info("得到列表"); return "得到列表"; }
/** * 得到列表中的一条# 最后
分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。
**[完整版获取:狂戳这里免费领取~](https://gitee.com/vip204888/java-p7)**
**《Java高级面试》**
![](https://static001.geekbang.org/infoq/c7/c7be41860ca47b61cca3394e8f2b9868.jpeg)
**《Java高级架构知识》**
![](https://static001.geekbang.org/infoq/01/0182768618c608ceaa2e52708a02f883.jpeg)
**《算法知识》**
![](https://static001.geekbang.org/infoq/64/644662d494d9b38ebaae06464a45ba31.jpeg)
复制代码


用户头像

VX:vip204888 领取资料 2021.07.29 加入

还未添加个人简介

评论

发布
暂无评论
80后程序员感慨中年危机,如何设计一个优雅的RESTFUL的接口