restful

WebApi系列~基于RESTful标准的Web Api

折月煮酒 提交于 2019-12-20 09:11:58
http://www.cnblogs.com/lori/p/3555737.html WebApi系列~基于RESTful标准的Web Api 回到目录 微软的web api是在vs2012上的mvc4项目绑定发行的,它提出的web api是完全基于RESTful标准的,完全不同于之前的(同是SOAP协议的)wcf和webService,它是简单,代码可读性强的,上手快的,如果要拿它和web服务相比,我会说,它的接口更标准,更清晰,没有混乱的方法名称,有的只有几种标准的请求,如get,post,put,delete等,它们分别对应的几个操作,下面讲一下: GET:生到数据列表(默认),或者得到一条实体数据 POST:添加服务端添加一条记录,记录实体为Form对象 PUT:添加或修改服务端的一条记录,记录实体的Form对象,记录主键以GET方式进行传输 DELETE:删除 服务端的一条记录 注意上面公开的API接口都是在XMLHttpRequest情况下调用的,当然你可以使用jquery的ajax组件来完成这个请求调用,它的代码更加面向对象,下面举例说明一下 这是页面的HTML代码部分,实现最基本的CRUD操作 <fieldset> <legend>测试Web Api </legend> <a href="javascript:add()">添加(post)</a> <a href=

RESTful API 设计指南

丶灬走出姿态 提交于 2019-12-20 04:56:05
作者: 阮一峰 日期: 2014年5月22日 网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现 "API First" 的设计思想。 RESTful API 是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇 《理解RESTful架构》 ,探讨如何理解这个概念。 今天,我将介绍RESTful API的设计细节,探讨如何设计一套合理、好用的API。我的主要参考了两篇文章( 1 , 2 )。 一、协议 API与用户的通信协议,总是使用 HTTPs协议 。 二、域名 应该尽量将API部署在专用域名之下。 https://api.example.com 如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。 https://example.org/api/ 三、版本(Versioning) 应该将API的版本号放入URL。 https://api.example.com/v1/ 另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观。 Github 采用这种做法。 四、路径(Endpoint) 路径又称"终点"(endpoint),表示API的具体网址。 在RESTful架构中

RESTful规范

不想你离开。 提交于 2019-12-20 04:38:00
RESTful规范 通俗点讲其实就是写前后端分离项目的一个数据交互的规范,并没有强制性要求。 总共有十条,但是其中有三条非常重要! 一、API与用户的通信协议,总是使用HTTPs协议 因为http是明文显示的,数据不安全 二、域名要有区分 https://api.example.com 尽量将API部署在专用域名(会存在跨域问题) https://example.org/api/ API很简单(推荐*****) 三、版本 URL,如:https://api.example.com/v1/ 可以放在路径 (一般放在路径中) 请求头 跨域时,引发发送多次请求 四、路径 视网络上任何东西都是资源,均使用名词表示(可复数)(*****) https://api.example.com/v1/zoos https://api.example.com/v1/animals https://api.example.com/v1/employees 请求路径上的资源都用名词表示如果删除新增都是一个名字也不符合逻辑,那就引出了method 五、通过method区分是什么操作 (*****) GET :从服务器取出资源(一项或多项) 查 POST :在服务器新建一个资源   新增 PUT :在服务器更新资源(客户端提供改变后的完整资源) 修改 PATCH :在服务器更新资源(客户端提供改变的属性)

RESTFUL 设计风格

孤街浪徒 提交于 2019-12-19 16:46:53
RESTFUL 规范总结: Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等广泛流行的标准和协议;轻量级,跨平台,跨语言的架构设计;它是一种设计风格,不是一种标准,是一种思想 Rest架构的主要原则: 1)网络上的所有事物都被抽象为资源 2) 每个资源都有一个唯一的资源标识符 3) 同一个资源具有多种表现形式(xml,json等) 4) 对资源的各种操作不会改变资源标识符 5)所有的操作都是无状态的 6)符合REST原则的架构方式即可称为RESTful URI设计上的一些技巧: 1)使用_或-来让URI可读性更好,例如国内比较出名的开源中国社区,它上面的新闻地址就采用这种风格, 如http://www.oschina.net/news/38119/oschina-translate-reward-plan。 2)使用/来表示资源的层级关系例如上述/git/git/commit/e3af72cdafab5993d18fae056f87e1d675913d08就表示了一个多级的资源, 指的是git用户的git项目的某次提交记录,又例如/orders/2012/10可以用来表示2012年10月的订单记录。 3)使用?用来过滤资源,很多人只是把?简单的当做是参数的传递,很容易造成URI过于复杂、难以理解。可以把?用于对资源的过滤, 例如/git/git

RESTful类型API调用

若如初见. 提交于 2019-12-19 04:16:04
RESTful类型API调用 Representational State Transfer(表征状态转移) AngularJS提供 $resource 服务可以同支持RESTful服务器端数据源进行交互。 使用 $resource 步骤 1、引入angular-resource.js 2、添加依赖’ngResource’ 3、获取资源实例: $resource ( ‘data/:name.json’, { name:’@username’ } ) 基于GET的HTTP方法: 1)get ( params,successFn,errorFn ) get方法可以不需要设置回调函数 2)query ( params,successFn,errorFn ) get和query的唯一不同是AngularJS期望query返回的是数组 var app = angular . module ( 'myApp' , [ "ngResource" ] ) ; // 创建控制器获取用户tom的数据并显示 // 此处需要注入$resource,通过RESTful的形式查询数据 app . controller ( "MyController" , function ( $scope , $resource ) { // 获取资源实例 // var User = $resource("data/

python 全栈开发,Day95(RESTful API介绍,基于Django实现RESTful API,DRF 序列化)

断了今生、忘了曾经 提交于 2019-12-18 09:36:08
昨日内容回顾 1. rest framework serializer(序列化)的简单使用 QuerySet([ obj, obj, obj]) --> JSON格式数据 0. 安装和导入: pip3 install djangorestframework from rest_framework import serializers 1. 简单使用 1. 创建一个类,类一定要继承serializers.Serializer 2. chocie字段和FK字段都可以通过使用source来获取对应的值 3. 多对多字段可以通过使用 serializers.SerializerMethodField def get_tag(self, obj): tag_list = [] for i in obj.tag.all(): tag_list.append(i.name) return tag_list 2.使用 ModelSerializer 通过配置class Meta: model = 表名 fields = ['字段', ...] depth = 1 View Code 一、RESTful API介绍 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”或

理解RESTful 架构

戏子无情 提交于 2019-12-18 00:26:33
REST是所有Web应用都应该遵守的架构设计指导原则。 Representational State Transfer,翻译是”表现层状态转化”。 面向资源是REST最明显的特征,对于同一个资源的一组不同的操作。资源是服务器上一个可命名的抽象概念,资源是以名词为核心来组织的,首先关注的是名词。REST要求,必须通过统一的接口来对资源执行各种操作。对于每个资源只能执行一组有限的操作。(7个HTTP方法:GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS) 什么是RESTful API? 符合REST架构设计的API。 总结 符合REST设计标准的API,即RESTful API。REST架构设计,遵循的各项标准和准则,就是HTTP协议的表现,换句话说,HTTP协议就是属于REST架构的设计模式。比如,无状态,请求-响应。。。 参考: 理解本身的REST架构风格 http://www.infoq.com/cn/articles/understanding-restful-style/ 理解RESTful架构 http://www.ruanyifeng.com/blog/2011/09/restful.html Restful API设计指南 http://www.ruanyifeng.com/blog/2014/05/restful_api.html 二

理解RESTful架构

元气小坏坏 提交于 2019-12-17 22:17:34
  越来越多的人开始意识到,网站即软件,而且是一种新型的软件。   这种“互联网软件”采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。   网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之前的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。   RESTFUL架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以得到越来越多网站的采用。   但是,到底什么是RESTFUL架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTFUL架构。   一、起源   REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。      Fielding是一个非常重要的人,它是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文已经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。   他这样介绍论文的写作目的:   "本文研究计算机科学两大前沿----软件和网络----的交叉点。长期以来,软件研究主要关注软件设计的分类、设计方法的演化

理解RESTful架构

邮差的信 提交于 2019-12-17 21:40:28
http://www.ruanyifeng.com/blog/2011/09/restful.html 作者: 阮一峰 日期: 2011年9月12日 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。 这种”互联网软件”采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。 网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。 RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 但是,到底什么是RESTful架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTful架构。 一、起源 REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。 Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。 他这样介绍论文的写作目的:

使用Nginx代理restful实现SSL链路加密

夙愿已清 提交于 2019-12-17 18:43:30
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1 目标说明 1.1 调研目的 本次调研主要为了解决两个问题: 不需要对restful的web容器做任何配置,实现对restful链路进行加密; 方便restful应用进行扩展,采用多个服务进行负载均衡,以提升吞吐量。 1.2 目标网络模型 希望达到的目标网络模型如下: 1.3 SSL说明 通过对SSL的学习,结合自身业务的考虑,对SSL的使用做如下说明: 我这里SSL使用TLSv1,并且服务端不需要校验客户端的身份合法性,则使用SSL单向认证方式,只需要服务端证书。另外我们只需要用到SSL的链路加密,所以可以设置客户端对服务端证书保持永久信任 2 调研过程 这里restful使用jersey来实现,使用jetty作为javaee容器。 2.1 测试非加密restful 通过jetty发布非加密restful服务,url为 http://localhost:8080/api/v1/.... 2.1.1 服务端代码 web.xml <servlet> <servlet-name>RestApplication</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param