什么是rest?什么是restful?它们之间是什么关系_restful和rest的关系-程序员宅基地

技术标签: rest  restful  服务设计  

REST服务与Restful风格

一、REST来源

REST:是一组架构约束条件和原则,REST是Roy Thomas Fielding在他2000年的博士论文中提出的。
这里写图片描述
图 1 Roy Thomas Fielding是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器作者之一、Apache基金会第一任主席

二、什么是REST

REST(Representational State Transfer):表现层状态转移,一种软件架构风格,不是标准。既然不是标准,我可以遵守,也可以不遵守!!!
什么是表现层状态转移:

 Representational (表现层)
 State Transfer(状态转移):通过HTTP动词实现。

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

三、什么是RESTful

 基于REST构建的API就是Restful风格。

四、为什么使用RESTful

1.JSP技术可以让我们在页面中嵌入Java代码,但是这样的技术实际上限制了我们的开发效率,因为需要我们Java工程师将html转换为jsp页面,并写一些脚本代码,或者前端代码。这样会严重限制我们的开发效率,也不能让我们的java工程师专注于业务功能的开发,所以目前越来越多的互联网公司开始实行前后端分离。
2.近年随着移动互联网的发展,各种类型的Client层出不穷,RESTful可以通过一套统一的接口为Web,iOS和Android提供服务。另外对于广大平台来说,比如微博开放平台,微信开放平台等,它们不需要有显式的前端,只需要一套提供服务的接口,RESTful无疑是最好的选择。RESTful架构如下:
这里写图片描述

五、如何设计Restful风格的API

1.路径设计

 —>在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表名对应,一般来说,数据库中的表都是同种记录的”集合”(collection),所以API中的名词也应该使用复数。
 —>举例来说,有一个API提供动物园(zoo)的信息,还包括各种动物和雇员的信息,则它的路径应该设计成下面这样。

   https://api.example.com/v1/zoos
   https://api.example.com/v1/animals
   https://api.example.com/v1/employees

2.HTTP动词设计

对于资源的具体操作类型,由HTTP动词表示,常用的HTTP动词如下:

请求方式 含义
GET 获取资源(一项或多项)
POST 新建资源
PUT 更新资源(客户端提供改变后的完整资源)
DELETE 删除资源

如何通过路径和http动词获悉要调用的功能:

请求方式 含义
GET /zoos 列出所有动物园
POST /zoos 新建一个动物园
GET /zoos/ID 获取某个指定动物园的信息
PUT /zoos/ID 更新某个指定动物园的信息(提供该动物园的全部信息)
DELETE /zoos/ID 删除某个动物园
GET /zoos/ID/animals 列出某个指定动物园的所有动物
DELETE /zoos/ID/animals/ID 删除某个指定动物园的指定动物
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/maxiao124/article/details/79897229

智能推荐

CDN下访问源站ERR_TOO_MANY_REDIRECTS_加了cdn failed to load image net::err_too_many_redir-程序员宅基地

文章浏览阅读1.2k次。问题描述源站(GitHub pages)使用了 CDN,浏览器访问提示重定向过多XXX.XXX.XXX 将您重定向的次数过多。尝试清除 Cookie.ERR_TOO_MANY_REDIRECTS问题原因Github Pages 开启了 Enforce HTTPS,且 CDN 中回源协议为 HTTP。此时客户端无论通过哪种协议访问源站的 CDN 加速域名,CDN 都会以 HTTP 协议回源。而源站因为 Enforce HTTPS 的存在返回 301 永久重定向强制要求 CDN 重新以 HTTPS_加了cdn failed to load image net::err_too_many_redirects

使用POI将mysql数据表转成excel电子表_myd文件转excel-程序员宅基地

文章浏览阅读1.8k次。Apache Jakarta POI项目提供了用于访问和生成Excel文档的组件。POI HSSF API用于生成Excel Workbook以及将Excel电子表格添加到workbook。Excel电子表格由行和单元格组成。电子表格的页面布局和字体也使用POI HSSF API进行设置。      通常要求将数据库表呈现在Excel电子表格中。同样,开发人员的需求也可以保存到数据库表中的_myd文件转excel

在CentOS 5.6安�Ruby及Redmine_linux使用rz命令出现b010000-程序员宅基地

文章浏览阅读5.2k次。又是因�工作需要,突然需要碰Redmine�套�案管理系�,但是可以�用的主�已�使用了CentOS,所以我必�在CentOS上安�Ruby等相�Redmine所需的相���。安�前你必�先:安�好MySQLMySQL可以新增�料��正常�作中有root�限 步�上大致有:安�Ruby安�RubyGems下�Redmine安�Bundler�定Redmine在C_linux使用rz命令出现b010000

Android & Kotlin:通过实现画板App学习onTouchEvent_kotlin ontouchevent-程序员宅基地

文章浏览阅读1.1k次。之前几个例子中经常使用到onClick,今天学习一下onTouchEvent。onTouchEvent和onClick是不同的事件,click只是点击一次,onTouchEvent是观察整个touch过程。0.效果展示1. 布局1.1 RelativeLayout之前都是使用LinearLayout进行布局,还有一种布局使用也挺多的:RelativeLayout,可以通过相对定位的方式让控件出现在布局的任何位置。通过描述跟父组建或是其他组建关系进行布局,如下为布局使用设置:layout_kotlin ontouchevent

ios远程证书的制作_applesev远程证明-程序员宅基地

文章浏览阅读381次。在ios中,通知有两种(提醒轰炸的来源): 第一种是本地通知(UILocalNotification),这一种不需要申请推送证书,也不需要向程序注册,直接使用,这一种不是本文讨论的范围。 第二种是APNS远程推送——远程通知(UIRemoteNotification),这个不仅需要向程序注册,也需要在开发者账号里申请推送证书,下面来介绍一下如何注册和申请证书。一_applesev远程证明

jdk从1.8换成1.7后,查看版本还是1.8解决方法-程序员宅基地

文章浏览阅读253次。因学习需要,需将jdk从1.8更改到1.7,其中遇到了些小麻烦,如果你也遇到这种麻烦,可以借鉴一下我的解决方法。1、jdk的安装及环境变量的配置,详见https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html2、具体更改步骤:将JAVA_HOME:的路径更改为1.7的相关路径,例如我的:C:\Program Fil..._linux安装jdk8没问题安装17改了环境变量看还是8

随便推点

Python语言程序设计 (第8期) 第五周_python内置函数调用前需要引用相应的库-程序员宅基地

文章浏览阅读1.1k次。测验5: 函数和代码复用 (第5周)1.以下选项不是函数作用的是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬A降低编程复杂度B增强代码可读性C复用代码D提高代码执行速度正确答案:D函数不能直接提高代码执行速度..._python内置函数调用前需要引用相应的库

pycharm突然没有提示的解决办法 (亲测管用)_pycharm没有预测-程序员宅基地

文章浏览阅读9.1k次,点赞7次,收藏7次。问题:pycharm突然没有提示,print、import都不提示,并且代码字体颜色都没有了。网上一堆关掉省电模型,估计你也都搜到了。以下两个方法亲测管用(Mac、Windows通用)方法一:File > Invalidate Caches / Restart …方法二:没有更改以前配置的情况下,删除.idea文件夹重新打开,实测这个最有效..._pycharm没有预测

机器学习-深度学习资料合集_机器学习guolih-程序员宅基地

文章浏览阅读384次。比较全面的收集了机器学习的介绍文章,从感知机、神经网络、决策树、SVM、Adaboost到随机森林、Deep Learning。《机器学习经典论文/survey合集》介绍:看题目你已经知道了是什么内容,没错。里面有很多经典的机器学习论文值得仔细与反复的阅读。《Brief History of Machine Learning》2介绍:这是一篇介绍机器学习历史的文章,介绍_机器学习guolih

python电影评价分析.dat_python读DAT - IT屋-程序员软件开发技术分享社区-程序员宅基地

文章浏览阅读176次。如果文件存在或者不存在,将文件打开为读/写的最佳方式是什么?然后创建并以读/写方式打开文件?从我读的, file = open('myfile.dat','rw')应该这样做,对吧? 它不适用于我(Python 2.6.2),我想知道它是否是一个版本问题,或不应该像这样或那样工作。 $ b $ p 更新:封闭的目录可以被用户和组写入,而不是其他(我在Linux系统上...所以权限779322017..._st = time.time() print("开始转化电影的dat文件")

基于springboot实现图书馆管理系统项目【项目源码+论文说明】计算机毕业设计_springboot图书管理系统免费源码-程序员宅基地

文章浏览阅读632次,点赞9次,收藏5次。通过互联网的发展和使用,让更多的人,更多的用户可以通过电子计算机信息技术就能更加方便地进行管理。为了能更好的管理图书馆,维护图书馆体系的正常运行,制作一个用于图书馆座位管理的系统,实现在线图书借阅、在线的自习座位预约等功能,后台用户可以对图书馆的图书馆员工进行管理,对图书存取进行管理,减免了繁琐的手工记录过程,提高管理效率,优化管理模式。如今信息化社会的不断发展,让更多的,注重人们的生活品质的提高,在生活的同时,也越来越注重在以后的生活中的服务,拥有良好的图书馆,能够让用户在很大的程度上体验生活。_springboot图书管理系统免费源码

网康应用安全网关(NS-ASG)-list_ipAddressPolicy-SQL注入漏洞(CVE-2024-2022)复现_网康ns-asg应用安全网关-程序员宅基地

文章浏览阅读413次,点赞7次,收藏6次。攻击者可以通过构造恶意的SQL语句,成功注入并执行恶意数据库操作,可能导致敏感信息泄露、数据库被篡改或其他严重后果。网康应用安全网关(NS-ASG) list_ipAddressPolicy 接口存在SQL注入漏洞。网康应用安全网关(NS-ASG)-list_ipAddressPolicy-SQL注入漏洞。FOFA:app="网康-NS-ASG-应用安全网关"网康应用安全网关(NS-ASG)漏洞类别: SQL注入漏洞。_网康ns-asg应用安全网关

推荐文章

热门文章

相关标签