restful

Restful的理解,Restful 优缺点

霸气de小男生 提交于 2019-12-17 03:46:43
写一下我对restful的理解,最近换工作面试的时候有问到我restful api的东西,工作中以前很多项目也是webapi + js前台控件的形式构建系统。实际上感觉restful太“理想化”,用起来不是特别顺手, 举例说明下: 先看看什么叫restful: REST的名称"表现层状态转化"中,省略了主语。"表现层"其实指的是"资源"(Resources)的"表现层"。 所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。 客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。 GET /tickets # 获取ticket列表 GET /tickets/12 # 查看某个具体的ticket POST /tickets # 新建一个ticket PUT /tickets/12 # 更新ticket 12. DELETE

使用ASP.NET Core 3.x 构建 RESTful API - 3.4 内容协商

廉价感情. 提交于 2019-12-16 22:38:24
现在,当谈论起 RESTful Web API 的时候,人们总会想到 JSON 。但是实际上, JSON 和 RESTful API 没有半毛钱关系,只不过 JSON 恰好是 RESTful API 结果的表述格式。也就是说 RESTful API 还可以使用其它的表述格式,例如 xml 或私有的格式。这也就意味着,我们需要让 RESTful API 知道我们想要返回的格式。而这就是 HTTP 请求和响应的核心内容之一: Content Negotiation 内容协商 内容协商是这样一个过程:针对一个响应,当有多种表述格式可用的时候,选取最佳的一个表述。 当我们的 RESTful API 只面向一个 API 消费者的时候,也许只使用 JSON 一种格式是没有什么问题的。但是如果需要面向各种形式的多个 API 消费者,那么很有可能少数 API 消费者无法很好的解析 JSON ,它们可能更习惯于 xml 或者其它格式。 那么如何解决这个问题呢? HTTP 请求的 Accept Header 就是用来解决这个问题的, API 的消费者在发送请求的时候,在 Accept Header 里面填写好 Media Type (媒体类型),例如 application / json 或者 application / xml 等等。 如果请求里填写的是 application /j son ,那么

REST(Representational State Transfer表述性状态转移)

回眸只為那壹抹淺笑 提交于 2019-12-16 15:08:57
参考内容:http://www.csdn.net/article/2013-06-13/2815744-RESTful-API 定义了一组体系架构原则,您可以根据这些原则设计以系统资源为中心的 Web 服务,包括使用不同语言编写的客户端如何通过 HTTP 处理和传输资源状态。 一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。 为使客户端程序能与你的资源相互协作,资源应该正确地实现默认的应用协议(HTTP),也就是使用标准的GET、PUT、POST和DELETE方法。 将client与服务器的交互方法,用http语言实现,统一标准化。 来源: https://www.cnblogs.com/cl1024cl/p/6205481.html

django-rest-framework概念

十年热恋 提交于 2019-12-16 05:13:41
rest–restful 是一种资源请求的标准/规范 支持GET, POST,PUT,DELETE,PATCH,DEAD,OPTION等常见的http请求方式 restful在定义接口/路由的时候一般采用名词复数形式 restful常见的状态 常见的状态码: 200 :正常响应 201 :正常响应,代表 新增数据成功 204 :正常响应, 代表 删除数据成功 301 : 永久性重定向 302 : 临时重定向 400 : BAD_REQUEST , 请求参数有问题 403 : 禁止访问 404 : 页面找不到 405 : 请求方式错误 500 : 服务器内部发生错误 Django-Rest-Framework(DRF) 是基于restful 风格设计的一套支持前后端分离的框架 在django基础上 来源: CSDN 作者: 西界M 链接: https://blog.csdn.net/weixin_45250558/article/details/103482958

什么是RESTful?RESTfule风格

喜夏-厌秋 提交于 2019-12-15 18:56:29
导读 理解什么是REST之前,先去脑补以下什么是HTTP,参考【 Http协议 】 什么是REST?    REST (英文:Representational State Transfer,简称 REST ,意思:表述性状态转换,描述了一个 架构 样式的网络系统,比如web应用)。   它是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件,它主要用于 客户端和服务端 交互类的软件。基于这个风格设计的软件可以更简介,更有层次,更易于实现缓存等机制。   它本身并没有什么使用性,其核心价值在于如何设计出符合REST风格的网络接口。 什么是RESTful?    REST :指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful 。 RESTful的特性    资源(Resources) :网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以用一个URI(统一资源定位符)指向它,每种资源对应一个特性的URI。要获取这个资源,访问它的URI就可以,因此URI即为每一个资源的独一无二的识别符。    表现层(Representation) :把资源具体呈现出来的形式,叫做它的表现层(Representation)。比如,文本可以用txt格式表现

什么是RESTful?RESTfule风格

佐手、 提交于 2019-12-14 21:17:54
导读 理解什么是REST之前,先去脑补以下什么是HTTP,参考【 Http协议 】 什么是REST?    REST (英文:Representational State Transfer,简称 REST ,意思:表述性状态转换,描述了一个 架构 样式的网络系统,比如web应用)。   它是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件,它主要用于 客户端和服务端 交互类的软件。基于这个风格设计的软件可以更简介,更有层次,更易于实现缓存等机制。   它本身并没有什么使用性,其核心价值在于如何设计出符合REST风格的网络接口。 什么是RESTful?    REST :指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful 。 RESTful的特性    资源(Resources) :网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以用一个URI(统一资源定位符)指向它,每种资源对应一个特性的URI。要获取这个资源,访问它的URI就可以,因此URI即为每一个资源的独一无二的识别符。    表现层(Representation) :把资源具体呈现出来的形式,叫做它的表现层(Representation)。比如,文本可以用txt格式表现

简单识别 RESTful 接口

感情迁移 提交于 2019-12-14 16:55:21
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本文描述了识别一个接口是否真的是 RESTful 接口的基本方法。符合 REST 架构风格的接口,称为 RESTful 接口。本文不打算从架构风格的推导方面描述,而是从 HTTP 标准的方面描述。识别的方法同时也是指导实践的原则。 一、是否使用了正确(合适)的方法 目前对于 HTTP 标准滥用较多的,就是方法。谈起 RESTful 接口的方法,很多资料告诉大家,说 GET、POST、PUT、DELETE,分别对应数据库操作的 SELECT、INSERT、UPDATE、DELETE。其实这种理解是不正确的。 方法有两个性质:安全性与幂等性;以及一个语义:动作本身的意思。RESTful 接口为各种数据抽象为资源,对资源的操作,主要是依据方法的两个性质,其次才是语义。 GET 方法的语义是获取资源,性质是安全、幂等。也就是说,对资源进行安全幂等的操作,应该用 GET 或 HEAD,当目的是获取资源时,选用 GET,目的是获取资源的元数据时,使用 HEAD。使用安全幂等的方法执行不安全或不幂等的操作,都是错误的。一个典型的例子是: GET /book/357?op=delete 这个例子的意图是删除 ID 为 357 的 book,DELETE 是不安全的操作,却使用了 GET 这个安全幂等的操作

restful初学习

元气小坏坏 提交于 2019-12-14 12:05:35
设置URI 使用域和子域对资源进行合理划分或分组 通过‘ / ’表示资源之间的层次关系 通过“,” 和“;”表示资源之间的非层次关系 通过“_”使URI更方便阅读 通过“&”分隔参数 避免出现返回页面的后缀名出现在URI中 关于HTTP请求方法 action 安全/幂等 描述 GET Y/Y 获取信息 TRACE Y/Y 获取发送给服务器的HTTP头部 HEAD Y/Y 类似GET获取HTTP的头部信息,但没有响应体 OPTION Y/Y 获取资源支持的HTTP方法列表 POST N/N 用途广,创建、更新或是一次性对多个资源进行修改 DELETE N/Y 删除资源 PUT N/Y 更新或替换一个新的资源 安全:执行动作是否改动资源 幂等:执行动作是否是一个幂等性操作 关于HTTP的状态码 参考 数据的交互表达 偏向数据的交互 JSON XML ProtoBuf 偏向用户 HTML(通过渲染呈现向用户) 来源: CSDN 作者: Zzz_woo 链接: https://blog.csdn.net/z1764559307/article/details/103460948

RESTFUL API 安全设计

主宰稳场 提交于 2019-12-14 11:12:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 0x01 REST API 简介 REST的全称是REpresentational State Transfer,表示表述性无状态传输,无需session,所以每次请求都得带上身份认证信息。rest是基于http协议的,也是无状态的。只是一种架构方式,所以它的安全特性都需我们自己实现,没有现成的。建议所有的请求都通过https协议发送。RESTful web services 概念的核心就是“资源”。 资源可以用 URI 来表示。客户端使用 HTTP 协议定义的方法来发送请求到这些 URIs,当然可能会导致这些被访问的”资源“状态的改变。HTTP请求对应关系如下: ========== ===================== ======================== HTTP 方法 行为 示例 ========== ===================== ======================== GET 获取资源的信息 http://xx.com/api/orders GET 获取某个特定资源的信息 http://xx.com/api/orders/123 POST 创建新资源 http://xx.com/api/orders PUT 更新资源 http://xx.com/api

djangorestframework框架笔记(1) 实例化对象

落花浮王杯 提交于 2019-12-13 17:06:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 安装环境 pip install django pip install djangorestframework pip install pygments ###创建项目 我们现在需要创建一个django的项目,下面的代码的功能是创建一个名为tutorial的django项目 cd ~ django-admin.py startproject tutorial cd tutorial 项目创建完成之后我们需要创建一个简单的web api的应用程序 python3 manage.py startapp snippets 我们编辑settings.py文件,将新程序和rest_framework应用添加到INSTALLED_APPS里面 INSTALLED_APPS = ( 'rest_framework', 'snippets.apps.SnippetsConfig', ) ###创建一个数据模型 我们将新创建的项目加载之后我们现在需要做的是创建一个数据的模型,我们在snippets/models.py添加一个Snippet的模型 from django.db import models from pygments.lexers import get_all_lexers from pygments.styles