rest framework 之前
在开始rest framework之前,我们先来了解一下什么是restful
rest 是一种软件架构风格,Representational state Transfer
它从资源的角度去看整个网络,通过对网络中的每个节点进行URL标识,客户端应用通过URL来获取资源的表征
其本质是将一切数据都视为资源,这是有别于其他架构的最大区别,这个理念被称为:面向资源架构(ROA)
下面来看看restful api的设计规范(10条)
1 api与用户的通信协议使用https协议
2 域名
https://api.example.com 将api部署在域名之前,(需解决跨域问题),子域名的方式
https://example.com/api 写在域名之后作为路径使用,简洁,url的方式
3 版本
https://api.example.com/v1/ 在域名后面加上版本名称
请求头 将需要的版本名称加入请求头里面
4 路径 ,可以将网络上的任何东西作为资源,使用其名词(可复数)
https://api.example.com/v1/books
https://api.example.com/v1/employees
5 method 方法
GET: 从服务器上获取资源(一个或者多个)
POST:新建一个资源
PUT:更新资源(客户端提供改变后的完整资源)
PATCH:更新资源的部分功能(例如改变其属性)
DELETE:删除资源
6 过滤,通过在url上传参的形式传递搜索条件
https://api.example.com/v1/books?page=2&per_page=50
上面传递的参数也可以是limit,offset,order等
7 状态码
状态码 说明 其他
ok GET 服务器成功返回用户请求的数据
moved permanently 被请求的资源已永久移动到新位置
Move Temporarily 请求的资源临时从不同的 URI响应请求
Bad Request 1语义有误,当前请求无法被服务器理解 请求参数有误。
403 Forbidden 服务器已经理解请求,但是拒绝执行它
404 Not Found 请求失败,请求所希望得到的资源未被在服务器上发现
405 Method Not Allowed 请求行中指定的请求方法不能被用于请求相应的资源
500 Internal Server Error 一般来说,这个问题都会在服务器端的源代码出现错误时出现。
502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
503 Service Unavailable 由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复
8 错误处理,报错时返回信息,以error作为key
{error:"XXXXXXXXXXXXXXXXXXXXXXXXX"}
9 返回结果,根据不同的操作向用户返回不同类型的结果
GET /collection: 返回资源对象的列表(数组)
GET /collection/1 返回单个资源对象
POST /collection 返回新生成的资源对象
PUT /collection/1 返回完整的资源对象
PATCH /collection/1 返回完整的资源对象
DELETE /collection/1 返回一个空文档
10 Hypermedia API,返回结果提供可以连向其他api的方法,让用户直接使用
[
{
id:1,
name:'物理',
url:'https://www.hehe.com/1',
},
{
id:2,
name:'化学',
url:'https://www.hehe.com/2',
}
]
其他:安装
pip install diangorestframework
rest framework 之前的更多相关文章
- windows类书的学习心得
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- Entity Framework Core 1.1 升级通告
原文地址:https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ 翻译:杨晓东 ...
- Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...
- 在传统.NET Framework 上运行ASP.NET Core项目
新的项目我们想用ASP.NET Core来开发,但是苦于我们历史的遗产很多,比如<使用 JavaScriptService 在.NET Core 里实现DES加密算法>,我们要估计等到.N ...
- 采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)
前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC Mi ...
- 来,给Entity Framework热热身
先来看一下Entity Framework缓慢的初始化速度给我们更新程序带来的一种痛苦. 我们手动更新程序时通常的操作步骤如下: 1)把Web服务器从负载均衡中摘下来 2)更新程序 3)预热(发出一个 ...
- 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)
前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...
- Entity Framework教程(第二版)
源起 很多年前刚毕业那阵写过一篇关于Entity Framework的文章,没发首页却得到100+的推荐.可能是当时Entity Framework刚刚发布介绍EF的文章比较少.一晃这么多年过去了,E ...
- Entity Framework 6 Recipes 2nd Edition 译 -> 目录 -持续更新
因为看了<Entity Framework 6 Recipes 2nd Edition>这本书前面8章的翻译,感谢china_fucan. 从第九章开始,我是边看边译的,没有通读,加之英语 ...
随机推荐
- IronPython C#与Python相互调用
ironphy microsoft.scripting dll using System;using System.Collections.Generic;using System.Linq;usi ...
- python 循环中使用多个subplot画子图像(python matplotlib use more than one subplot in loop)
在循环语句中画出多个subplot图像代码如下 http://jonathansoma.com/lede/data-studio/classes/small-multiples/long-explan ...
- c#处理3种json数据的方式
原文出处:http://www.jb51.net/article/48027.htm 一.C#处理简单json数据 json数据: {"result":"0", ...
- Mybatis基于XML配置SQL映射器(三)
Mybatis之动态SQL mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类: if choo ...
- 洛谷P1122 最大子树和 (树状dp)
题目描述 小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题.一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的问题.于是当日课后,小明 ...
- win10 解决telnet不是内部或外部命令的方案
1.Telnet用于远程操作互联网中的设备或终端计算机服务器,可以有效的减少现场操作的麻烦.因为设备或终端是遍布整个省或市,有的甚至是国外,如何高效的处理问题是当务之急,除了telnet还可以ssh使 ...
- H5 调用 手机设备的功能
1.调用 邮件 : 参考 https://blog.csdn.net/github_38516987/article/details/77637546 (亲测有效) <a href=" ...
- leetcode的一些贪心题目
11-盛最多水的容器 思路:定义2个指针分别指向数组的两端,找出两边缘最小的那个,然后乘以两边缘的距离,然后向中间搜索,移动一次算出结果比较取最大的. class Solution { public: ...
- 46、tensorflow入门初步,手写识别0,1,2,3,4,5,6
1.使用tensorflow的SoftMax函数,对手写数字进行识别 Administrator@SuperComputer MINGW64 ~ $ docker run -it -p 8888:88 ...
- JdbcTemplate 的oracle分页
@Autowired private JdbcTemplate jd; int ps1=Integer.valueOf(pageSize); int cp1=Integer.valueOf(currP ...