web接口与restful规范
web接口
接口定义:
通过网络,规定了前后台信息交互规则的url链接,在web程序中也就是联系前台页面与后台数据库的媒介.
接口特点
url:长得像返回数据的url链接, 例如下面的搜索音乐
请求方式:get、post、put、patch、delete
- 采用get方式请求上方接口
请求参数:json或xml格式的key-value类型数据
- name: 童话镇
响应结果:json或xml格式的数据
上方请求参数的output参数值决定了响应数据的格式
{
code: 200,
message: "成功!",
result: [
{
author: "暗杠",
link: "http://music.163.com/#/song?id=413829859",
pic: "http://p2.music.126.net/xmYUW7yYS02Tc0McsGdKWA==/18345351510075909.jpg?param=300x300",
type: "netease",
title: "童话镇",
lrc: "",
songid: 413829859,
url: "http://music.163.com/song/media/outer/ural?id=413829859.mp3"
},
{
author: "李梓萌",
link: "http://music.163.com/#/song?id=1302084285",
pic: "http://p2.music.126.net/sGH_Ch3HCW_mE50va15Cgw==/109951163464298454.jpg?param=300x300",
type: "netease",
title: "童话镇 ",
lrc: "",
songid: 1302084285,
url: "http://music.163.com/song/media/outer/url?id=1302084285.mp3"
}
]
}
restful接口规范
REST定义:
全称是 Resource Representational State Transfer:通俗来讲就是:资源在网络中以某种表现形式进行状态转移, 分解开来说明:
- Resource:资源,即数据, 比如 newsfeed,friends等;
- Representational:某种表现形式,比如用JSON,XML,JPEG等;
- State Transfer:状态变化。通过HTTP动词实现。
Restful设计方法
Restful由于其面向资源接口设计以及操作抽象简化了开发者的不良设计,同时也最大限度的利用了Http最初的应用协议设计理念. restful的设计一般分为2部分来看, url请求部分和response响应部分.
url
用api关键字标识接口url
api.baidu.com | www.baidu.com/api接口数据安全性决定优先选择https协议
如果一个接口有多版本存在,需要在url中标识体现
api.baidu.com/v1/... | api.baidu.com/v2/...接口操作的数据源称之为 资源,在url中一般采用资源复数形式,一个接口可以概括对该资源的多种操作方式
api.baidu.com/books | api.baidu.com/books/(pk)请求方式有多种,用一个url处理如何保证不混乱 - 通过请求方式标识操作资源的方式
"""
/books get 获取所有
/books post 增加一个(多个)
/books/(pk) delete 删除一个
/books/(pk) put 整体更新一个
/books/(pk) patch 局部更新一个
"""
资源往往涉及数据的各种操作方式 - 筛选、排序、限制
api.baidu.com/books/?search=西&ordering=-price&limit=3
response
- http请求的响应会有响应状态码,接口用来返回操作的资源数据,可以拥有 操作数据结果的 状态码
status 0(操作资源成功) 1(操作资源失败) 2(操作资源成功,但没匹配结果)
注:资源状态码不像http状态码,一般都是后台与前台或是客户约定的 - 资源的状态码文字提示
status ok '账号有误' '密码有误' '用户锁定' - 资源本身
results
注:删除资源成功不做任何数据返回(返回空字符串) - 不能直接放回的资源(子资源、图片、视频等资源),返回该资源的url链接
web接口与restful规范的更多相关文章
- 接口、RESTful规范、DRF
接口 #接口:url连接,通过向链接发送不同的类型请求与参数得到相应的响应数据 #1.在视图书写处理请求的 视图函数 #2.在路由层为视图函数配置 url链接=>产生接口 #3.前台通过ajax ...
- Restful API 接口设计标准及规范
Restful API 接口设计标准以及规范 RESTful概念 理解和评估以网络为基础的应用软件的架构设计,得到一个功能强.性能好.适宜通信的架构.REST指的是一组架构约束条件和原则." ...
- RESTful规范与django编写restful接口
一.什么是RESTful规范 ①REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” ②REST从资 ...
- 微服务接口设计(RESTful规范)
微服务的接口设计(RESTful规范) 基本知识 URI:在RESTful架构中,每个URI代表一种资源 URI规范: 不用大写 用中杠-,不用下划线_ 路径中不能有动词,只能有名词 名词表示资源集合 ...
- RESTful 规范
RESTful 规范 前言 rest 是一种软件架构风格,如果使用的是 rest 接口,那么就可以说你的接口是 restful. rest接口是围绕''资源''展开的,利用 HTTP 的协议,其实 r ...
- DjangoRestFramework 学习之restful规范 APIview 解析器组件 Postman等
DjangoRestFramework学习一之restful规范.APIview.解析器组件.Postman等 本节目录 一 预备知识 二 restful规范 三 DRF的APIView和解析器组件 ...
- drf1 rest & restful规范
web服务交互 我们在浏览器中能看到的每个网站,都是一个web服务.那么我们在提供每个web服务的时候,都需要前后端交互,前后端交互就一定有一些实现方案,我们通常叫web服务交互方案. 目前主流的三种 ...
- django rest framework restful 规范
内容回顾: . django请求生命周期 -> 执行遵循wsgi协议的模块(socket服务端) -> 中间件(路由匹配) -> 视图函数(业务处理:ORM.模板渲染) -> ...
- day89 DjangoRsetFramework学习---restful规范,解析器组件,Postman等
DjangoRsetFramework学习---restful规范,解析器组件,Postman等 本节目录 一 预备知识 二 restful规范 三 DRF的APIView和解析 ...
随机推荐
- abp中将SqlServer切换为MySQL
一.移除默认SQL Server相关包 在EntityFrameworkCore项目下移除包Microsoft.EntityFrameworkCore.SqlServer.Microsoft.Enti ...
- [2018-01-08] Python强化周的第一天
Python强化周的第一天 学生管理系统-制作(成绩类)模块 class Score: lesson_name = "python" # 课程名 score = 0 # 分数 # ...
- C/c.pp:贪心,二分答案
说是贪心有点牵强. 其次,答案满足单调性,如果在k次操作能完成那么在k+1次操作内也能完成. 因为大不了你就把多的一次对方操作再进行一次就好了. 怎么操作呢? 我们从头扫这个序列,遇到每一个不匹配位置 ...
- CSPS模拟 95
T_T flag彻底倒了 虽然打一开始就没觉得能实现过 可是我好桑心T_T skyh那个没素质的还一直bb T_T
- 微服务架构~Zuul1.0和2.0我们该如何选择?
介绍 在今年5月中,Netflix终于开源了它的支持异步调用模式的Zuul网关2.0版本,真可谓千呼万唤始出来.从Netflix的官方博文[附录1]中,我们获得的信息也比较令人振奋: The Clou ...
- 通俗易懂了解Vue的计算属性
1.前言 之前在学习vue的过程中,一直没有搞明白计算属性是个怎么回事,以及为什么要有计算属性,使用计算属性有什么好处.今天花时间翻了翻官方文档,才搞清楚其中一二,现将学习心得总结记录如下. 2.为什 ...
- VIM编辑器的常用命令及使用!
在热门Linux操作系统中都会默认安装一款超好用的文本编辑器——名字叫“vim”,vim是vi编辑器的升级版. Vim能够得到这么多厂商与用户的认可,原因就是在Vim编辑器中有三种模式——命令模式.末 ...
- docker项目——上线tomcat网站
项目: 1.使用docker部署tomcat环境 2.上线网站 3.完成访问使用等 第一步.启动基于tomcat镜像的容器 a.导入镜像 [root@localhost ~]# docker load ...
- 使用 Casbin 作为 ThinkPHP 的权限控制中间件
PHP-Casbin 是一个强大的.高效的开源访问控制框架,它支持基于各种访问控制模型的权限管理. Think-Casbin 是一个专为 ThinkPHP5.1 定制的 Casbin 的扩展包,使开发 ...
- [LC]783题 二叉搜索树结点最小距离(中序遍历)
①题目 给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值. 示例: 输入: root = [4,2,6,1,3,null,null]输出: 1解释:注意,root是树结点对象(T ...