Django-restful

本文介绍了RESTful的概念,详细阐述了RESTful理解及其规范,包括资源URL的设计原则,如URL表示资源、单数与复数形式、相对路径与请求参数的使用,以及HTTP动词GET、POST、PUT、DELETE的应用。同时,讨论了状态码的选择和表示结构的选择。此外,还提及了在Django的APIView中如何处理HTTP数据以及进行版本控制。
摘要由CSDN通过智能技术生成

一、什么是restful?

简单的说:RESTful是一种架构的规范与约束、原则,符合这种规范的架构就是RESTful架构。
先看REST是什么意思,英文Representational state transfer 表述性状态转移 其实就是对 资源 的表述性状态转移。
(什么是表述性:就是指客户端请求一个资源,服务器拿到的这个资源,就是表述)
资源的地址 在web中就是URL (统一资源标识符)
资源是REST系统的核心概念。 所有的设计都是以资源为中心
结合项目怎么识别资源
1.商品加入购物车 购物车
2.提交订单 订单
3.创建用户 用户
围绕资源进行 添加,获取,修改,删除,以及对符合特定条件的资源进行列表操作 。针对资源设计接口。

二、restful的理解

关于规范与约束有哪些?

	RESTful 架构的核心规范与约束:统一接口
	分为四个子约束:
	1.每个资源都拥有一个资源标识,每个资源的资源标识可以用来唯一地标明该资源
	2.消息的自描述性
	3.资源的自描述性。
	4.HATEOAS Hypermedia As The Engine Of Application State(超媒体作为应用状态引擎)
	即客户只可以通过服务端所返回各结果中所包含的信息来得到下一步操作所需要的信息,如到底是向哪个URL发送请求等。也就是说,一个典型的REST服务不需要额外的文档标示通过哪些URL访问特定类型的资源,而是通过服务端返回的响应来标示到底能在该资源上执行什么样的操作
	目的:实现客户端无需借助任何文档即能调用到所有的服务器资源

在这里插入图片描述

三、资源的URL设计

1.通过URL来表示资源

资源分为主资源与子资源
因为主资源是一类独立的资源 所以主资源应直接放在相对路径下:例如
若要表示主资源的实例:如果实例的ID=1,则这样表示: /goods/1
子资源:
一个实例的子资源可能是一个集合也可能是一个单一的子资源
子资源为图片集合:/goods/1/pictures
子资源为商品折扣的单子子资源:/goods/1/discount

2.单数 vs. 复数

获取用户1的信息,哪种方式更符合RESTful?
/api/users/1
/api/user/1

3.相对路径 vs. 请求参数

极光的RESTful API:
获取用户信息 GET /v1/users/{username} 参数放在路径中
VS
获取用户信息 GET /v1/users?username=xxxxx 拼接的方式
 
获取应用管理员列表 GET /v1/admins?start={start}&count={count} ?后拼接参数的方式:这种方式一般作为过滤资源

4.使用合适的动词 get delete put post

选择请求接口的方式: get delete
PUT 在服务器更新资源(客户端提供改变后的完整资源)。
POST 在服务器新建一个资源

5.使用标准的状态码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值