美文网首页
RESTful是什么

RESTful是什么

作者: 蹙眉大傻 | 来源:发表于2017-11-09 15:45 被阅读0次

在程序猿DD Spring Boot基础教程的开山篇《基础项目构建,引入Web模块,完成一个简单的RESTful API》中,RESTful 是什么呢?

那么先百度一下:一种软件构架风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更加简洁,更有层次,更用以实现缓存等机制。

是不是一头雾水,百度百科中对REST以及RESTful有非常理论的介绍,不过虽然耐着性子看完了,仍然不知所云。好在知乎有《怎样用通俗的语言解释REST,以及RESTful?》。

那么本文将对答者的回答自行梳理一下:

    要了解REST,首先需要了解API(Application Programming Interface,应用程序编程接口)。什么是API呢?首先它的定义是一个接口,举个形象的例子来说,就是一个公司比如腾讯,他们对自己项目封装,提供一个API,然后我们或者一些小公司可以通过这些API,对封装的这个项目进行交互。通过这个渠道打到我们的目的。

    了解了API,那么REST是什么呢?他是一种构架风格,腾讯这类公司要遵循这种风格建立API。那么REST的具体风格是什么呢?REST(Representational State Transfer)(表现层状态转移)。又是一头雾水,什么是表现层状态转移呢?

    这里我们要了解一下Web,因为REST是基于Web应用的。Web:分布式信息系统为超文本文件和其他对象(资源)提供访问入口。资源是Web构架的关键点,当资源与Web交互时,它需要3个操作,识别(identify),表示(represent),交互(interact with),通过这三个操作,又引入了3个概念uri(统一资源标识符包括url和urn)识别资源;representation(例如html,xml,视频,图片)表示资源;通过协议(包括http,ftp等)与资源进行交互。

  如果我们想将一个资源文件显现出来,就要通过uri进行暴露。uri的设计只是负责把资源通过合理的方式暴露出来。对资源没有任何操作,操作是通过http动词来实现的,所以REST通过URI暴露资源时,会强调不要再URI中出现动词。

  比如:左边的是错误的设计,右边的是正确的

GET     /rest/api/getDogs    ——> GET     /rest/api/dogs      获取所有的小狗

GET    /rest/api/addDogs    ——> POST        /rest/api/dogs      添加一个小狗

GET    /rest/api/editDogs/:dog_id    ——>    PUT    /rest/api/dogs/:dog_id    修改一个小狗

GET    /rest/api/deleteDogs/:dog_id    ——>    DELETE    /rest/api/dogs/:dog_id    删除一个小狗

左边的这种设计,不符合REST风格,uri只负责准确无误的暴露资源,而getDogs、addDogs已经包含了对资源的操作,这是不对的。而右边是通过具体的Http动词来体现。所以很容易理解REST很好利用了HTTP本来的特性,而不是只是将HTTP作为传输层这么简单。

总结一下:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

相关文章

  • RESTFUL风格

    Restful API是什么?初探Restful API?为什么要用Restful API?传统接口写法与Rest...

  • 越来越多的web服务开始采用RESTful风格设计和实现

    文章概要: 什么是RESTful? RESTful的规范是什么? 实际开发中RESTful是怎么使用的? REST...

  • RESTful API

    RESTful API 一、RESTful简介 1.Restful是什么 本质:一种软件架构风格核心:面向资源解决...

  • 这次我让你彻底弄懂 RESTful

    RESTful 想必大家都耳熟能详。 但是为什么要有 RESTful,RESTful 到底是什么意思。 为什么称之...

  • node+koa2+mongodb搭建RESTful API风格

    RESTful API风格 在开发之前先回顾一下,RESTful API 是什么? RESTful 是一种 API...

  • RESTful必须知道的那些事

    为什么会出现RESTful 先不要急着知道RESTful到底是什么,它没那么高深的。要想清楚的知道RESTful,...

  • RESTFUL知识书目录

    RESTFUL是什么 为什么会出现RESTFUL http协议 GET http协议 POST http协议 PU...

  • 如何设计优雅的符合restful风格的API

    一:RESTful是什么 1:RESTful是一种架构风格,是一种描述语言,不是一个标准 2:RESTful核心就...

  • restful是什么

    大家好,我是IT修真院深圳分院第5期学员,一枚正直善良的JAVA程序员。 今天给大家分享一下,修真院官网JAVA任...

  • restful是什么

    本质:一种软件架构风格核心:面向资源解决的问题:降低开发的复杂性、提高系统的可伸缩性设计概念和准则:网络上的所有事...

网友评论

      本文标题:RESTful是什么

      本文链接:https://www.haomeiwen.com/subject/fjdemxtx.html