restful

什么是RESTful API

十年热恋 提交于 2019-12-13 16:37:08
简单介绍 REST,即Representational State Transfer的缩写。直接翻译的意思是"表现层状态转化"。 它是一种互联网应用程序的API设计理念:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。 产生背景 近年来移动互联网的发展,前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......),因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信,于是RESTful诞生了,它可以通过一套统一的接口为 Web,iOS和Android提供服务。 图片.png URI 即统一资源标识符,服务器上每一种资源,比如文档、图像、视频片段、程序 都由一个通用资源标识符(Uniform Resource Identifier, 简称"URI")进行定位。 HTTP动词 常用的HTTP动词有下面五个 GET(SELECT):从服务器取出资源(一项或多项)。 POST(CREATE):在服务器新建一个资源。 PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。 PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。 DELETE(DELETE):从服务器删除资源。 RESTful架构 服务器上每一种资源,比如一个文件,一张图片,一部电影,都有对应的url地址

了解restful api

亡梦爱人 提交于 2019-12-12 15:00:11
前言 在以前,一个网站的完成总是“all in one”,页面,数据,渲染全部在服务端完成,这样做的最大的弊端是后期维护,扩展极其痛苦,开发人员必须同时具备前后端知识。于是慢慢的后来兴起了 前后端分离 的思想: 后端负责 数据编造 ,而前端则负责 数据渲染 ,前端静态页面调用指定api获取到有固定格式的数据,再将数据展示出来,这样呈现给用户的就是一个”动态“的过程,而关于api这部分的设计则成了一个问题。如何设计出一个便于理解,容易使用的api则成了一个问题。 而所谓的 restful 就是用来规范我们的api的一种约束。 介绍 rest 是 REpresentational State Transfer 三个单词的缩写,由Roy Fielding于2000年论文中提出,它代表着分布式服务的架构风格。而如果想你的api被称为restful api,只要遵循其规定的约束即可。 rest设计原则 客户端-服务器:通过将用户UI与数据存储分开,我们可以简化服务器组件来提高跨多个平台的用户界面的可移植性并提高可伸缩性。 它可以比表现成前后端分离的思想。 无状态:从客户端到服务器的每个请求都必须包含理解请求所需的所有信息,并且不能利用服务器上任何存储的上下文。 这表示你应该尽可能的避免使用session,由客户端自己标识会话状态。(token) 规范接口:REST接口约束定义:资源识别;

restful 图书管理

左心房为你撑大大i 提交于 2019-12-12 02:32:47
模型 class BookUser ( models.Model ) : username = models.CharField ( max_length = 32, null = False,unique = True ) pwd = models.CharField ( max_length = 256,null = False ) class Meta: db_table = 'bookuser' class Book ( models.Model ) : b_name = models.CharField ( max_length = 32, null = False ) b_price = models.FloatField ( default = 10 ) b_user = models.ForeignKey ( BookUser, on_delete = models.CASCADE,default = 1 ) #外键 #用户认证所需要的模型,储存用户登录的信息 class UserToken ( models.Model ) : token = models.CharField ( max_length = 64, unique = True, null = False ) user_id = models.IntegerField ( default = 0 )

什么是restful?rest方法有哪些?有什么区别?

邮差的信 提交于 2019-12-11 04:22:40
这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能。 大家好,我是IT修真院西安分院赵立鼐,一枚正直纯洁善良的java程序员。 本篇分享的是:【什么是restful?rest方法有哪些?有什么区别?】 (1)背景介绍: REST(Representational State Transfer,表述性状态转移) 源于REST之父Roy Thomas Fielding 博士在2000年就读加州大学欧文分校期间发表的一篇学术论文——《 Architectural Styles and the Design of Network- based Software Architectures》。</p> 论文中提出了REST的6个特点,分别是:客户端-服务器的、无状态的、可缓存的、统一接口、分层系统和按需编码。 REST具有跨平台、跨语言的优势。 REST是一种架构风格。 在REST架构风格中,对象被抽象为一种资源.资源的命名使用概念清晰的名词来定义。 表述性状态是对资源数据在某个瞬间状态的快照, 资源的某个瞬时状态被定义为一种表述(representation), 这种描述性的状态包括资源数据的内容、表述格式(比如XML、JSON)等信息, 一种资源可以对应多种表述。

RESTful 接口实现简明指南

前提是你 提交于 2019-12-10 20:11:57
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在前后端分离的 Web 应用架构中,前端专注于页面,同时与后端进行数据交互;而后端则专注于提供 API 接口。在这样的结构下,REST 是一个很流行的前后端交互形式的约定。这只是一套约定,并不是某个技术标准,所以在实际的应用中,对器实现程度完全取决于后端开发者;一些号称 RESTful 的接口并没有那么RESTful。 在我所见过的 RESTful 接口的实现中,以 GitHub 最让人惊叹。我第一次如此强烈得感受到 REST 接口的美妙,完全满足了我所期待的「接口的形式美感」,简直就是对 REST 规范实现的最佳范本。我觉得每一个后端开发者都应该看一看 GitHub 的 REST 接口文档 ,感受一下循规蹈矩的美妙。 本文选取了几个点来简要介绍,一个让前端开发者用起来舒服的 RESTful 接口是什么样子。 REST 简介 以防有些观众刚刚打开电梯,还是有必要简单介绍一下 REST 这个概念。 REST 是一个术语的缩写,REpresentational State Transfer,中文直译「表征状态转移」,这是个很拗口的词。我的建议是先不要强行理解,直接看怎么做,等对实施细节有一些了解后,再来看名字会有更深刻的理解。REST 是一套风格约定,RESTful 是它的形容词形式;比如一套实现了 REST

RESTful设计原则和样例(开发前后台接口)

余生颓废 提交于 2019-12-10 08:30:24
参考博文: http://www.cnblogs.com/artech/p/restful-web-api-02.html 维基百科:https://zh.wikipedia.org/wiki/REST 目前在三种主流的 Web服务 实现方案中,因为REST模式与复杂的 SOAP 和 XML-RPC 相比更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如, Amazon.com 提供接近REST风格的Web服务进行图书查找; 雅虎 提供的Web服务也是REST风格的。 要点及标准 需要注意的是,REST是设计风格而 不是 标准。REST通常基于使用 HTTP , URI ,和 XML 以及 HTML 这些现有的广泛流行的协议和标准。 资源是由URI来指定。 对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。 通过操作资源的表现形式来操作资源。 资源的表现形式则是XML或者HTML,取决于读者是机器还是人,是消费web服务的客户软件还是web浏览器。当然也可以是任何其他的格式。 REST的要求 客户端和服务器结构 连接协议具有无状态性 能够利用Cache机制增进性能 层次化的系统 所需代码 - Javascript (可选) 关于状态 应该注意区别应用的状态和连接协议的状态。HTTP连接是无状态的

Django REST framework的各种技巧——4.Generic View

一曲冷凌霜 提交于 2019-12-10 07:32:41
generic view是django神奇的地方,而restframework遵循了这个powerful的机制 Django REST framework的各种技巧【目录索引】 写在上面 所有的代码都是在下面的两个版本来做的 django==1.8.8 djangorestframework==3.2.5 一个之前的blog,解释django generic view Django generics view 以及看源码为什么这么重要 一组标准的api的实现实现 例如有一个课程类的api,支持增删改查 url url(r'^courses/$', CoursesView.as_view(), name='course-list'), url(r'^course/(?P<pk>\d+)/$', CourseDetailView.as_view(), name='course-detail'), view class CoursesView(ListCreateAPIView): filter_backends = (SchoolPermissionFilterBackend, filters.DjangoFilterBackend, filters.SearchFilter) permission_classes = (IsAuthenticated,

关于restful开发的疑惑

情到浓时终转凉″ 提交于 2019-12-10 05:04:33
   if 你没有了解过restful return ; 一、疑惑   restful风格开发是有争议的,restful的设计是请求“resource”,然后只能对“resource”做CRUD操作。抽象于这四种操作 根本无法满足太多太多的业务场景,现实的很多很多业务根本无法融入到restful的规范中。比方说,user login / reset password等等。   restful的信徒,他们会说可以把它们都归并到CRUD中的一种规范中。这在我看来,纯粹是在解决一些原本不存在,根本不需要解决的问题,纯浪费......(此处省略N个字,详情点击 https://www.zhihu.com/question/28570307 ); 二、解决疑惑   但是话说回来,很多企业都在使用restful,所以我们还是有必要一定的去理解它,并且尽量使解决其中的争议。   大部分人使用restful风格开发时把 POST、GET、PUT、DELETE 直接对应上CRUD,基本是正确的,其中部分有错误,很多人都是跟风,并没有理解其真正的含义。我总结了以下4点用于restful开发: 1、POST和PUT的区别   操作(更新或者新增)的资源的名称(URI,地址)是否由客户端决定。如果时客户端决定那么用PUT,反之用POST。例如为我的博文增加一个java的分类,生成的路径就是 分类名

RESTFul架构权限设计

此生再无相见时 提交于 2019-12-10 02:09:28
1 用户权限认证后获取服务端的token,将token存入客户端cookie中。 2 将cookie放入客户端请求页面的头部信息 X-CSRF-TOKEN中 示例代码 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="csrf-token" content="abcd"> <title>Document</title> </head> <body> <script src="//cdn.bootcss.com/jquery/2.2.1/jquery.js"> </script> <script> $(function(){ alert('ready'); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $.post('test_token.php',{username:"lilu"},function(){ alert('back'); }); }); </script> </body> </html> 3 服务端验证token function get_all_headers() { $headers = array(); foreach($

springMVC restful风格

我的未来我决定 提交于 2019-12-09 01:42:03
RESTful简介 1.REST架构是一个抽象的概念, 目前主要是基于HTTP协议实现,其目的是为了提高系统的可伸缩性,降低应用之间的耦合度,便于框架分布式处理程序。 2.REST主要对以下两方面进行了规范 -定位资源的URL风格,例如 http://baidu.com/admin/1234 http://baidu.com/admin/1234/10/11 -如何对资源操作 采用HTTP协议规定的GET、POST、PUT、DELETE动作处理资源的增删该查操作 3.什么是RESTful? -符合REST约束风格和原则的应用程序或设计就是RESTful. eg: /emp/1 HTTP GET 查询id=1的emp /emp/1 HTTP DELETE 删除id=1的emp,实验中直接删除会报405错误,但是采用$.ajax异步删除就没问题 /emp/1 HTTP PUT 更新emp /emp/add HTTP POST 新增emp 4.Spring对RESTful的支持 - Spring MVC 对 RESTful应用提供了以下支持 - 利用@RequestMapping 指定要处理请求的URI模板和HTTP请求的动作类型 - 利用@PathVariable讲URI请求模板中的变量映射到处理方法参数上 - 利用Ajax,在客户端发出PUT、DELETE动作的请求 具体例子 浏览器