大家好,我是IT修真院深圳分院第6期学员,一枚正直善良的JAVA程序员。
今天给大家分享一下,修真院官网JAVA任务中,task2部分的知识点——RESTful API
一、背景介绍
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。
因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。
二、知识剖析
(Representational State Transfer, REST)表述性状态转移。
表述性(Representational):REST资源可以用各种形式来进行表述,包括XML JSON甚至HTML---最适合资源使用者的任意形式。
状态(State):当使用REST的时候,我们更关注资源的状态而不是对资源采用的行为。
转移(Trasfer):REST涉及到转移资源数据,它以某种表述性形式从一个应用转移到另一个应用。
REST就是将资源的状态以最适合客户端或者服务端的形式从服务器端转移到客户端(或者反过来)
RESTFul API有哪些特点:
基于“资源”,数据也好、服务也好,在RESTFul设计里一切都是资源。
无状态。一次调用一般就会返回结果,不存在类似于“打开连接-访问数据-关闭连接”这种依赖于上一次调用的情况。
URL中通常不出现动词,只有名词
URL语义清晰、明确
使用HTTP的GET、POST、DELETE、PUT来表示对于资源的增删改查
GET(SELECT):从服务器取出资源(一项或多项)。
POST(CREATE):在服务器新建一个资源。
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
DELETE(DELETE):从服务器删除资源。
在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。
就是URL定位资源,用HTTP动词(GET,POST,DELETE,PUT,PATCH)描述操作。
GET /users: 列出所有用户
POST /users: 新建一个用户
GET /users/id: 获取某个指定用户的信息
PUT /users/id: 更新某个指定用户的信息(提供该用户的所有信息)
PATCH /users/id: 更新某个指定用户的信息(提供部分信息)
DELETE /users/id: 删除某个用户
三、常见问题
1.常见问题
为什么使用RESTful API?
四、解决方案
看Url就知道要什么
看http method就知道干什么
看http status code就知道结果如何
六、扩展思考
1.对于用户登录和用户退出这两个业务需求,REST指导下的架构和设计如何满足
“登录”作为一个资源,所以登录是POST /logins,退出是DELETE /logins/{id}
实际的操作:
就是Token的POST和DELETE
七、参考文献
https://www.zhihu.com/question/33959971/answer/57593571
八、更多讨论
提问1.PUT和PATCH区别?
答:PUT需要提交完整信息,PATCH可以部分属性更新。
提问2:使用RESTful 有什么好处?
答:看Url就知道要什么
看http method就知道干什么
看http status code就知道结果如何
提问3:在jsp中并不支持使用put以及delete标签,我们该怎么使用?
答:在form表单中增加一条隐藏属性,
感谢大家观看
PPT:PPT
视频:视频
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~
小礼物走一走,来简书关注我
赞赏支持
作者:blue
链接:
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。