当前位置: 首页 > news >正文

DRF之引入

目录

一、web应用模式

【1】前后端混合开发

【2】前后端分离

二、API接口

三、接口测试工具:Postman

四、RESTful API规范

【1】什么是RESTful

【2】RESTful API的规范

2.1 数据的安全保障

2.2 接口特征表现

2.3 多数据版本共存

2.4 数据即是资源,均使用名词(可复数)

2.5 资源操作由请求方式决定(method)

2.6 url中带搜索或过滤条件​​​​​​​

2.7 响应状态码

2.8 返回中带错误信息

2.9 返回结果,符合以下规范

2.10 返回数据中带url链接


一、web应用模式

【1】前后端混合开发

  • 后端人员
    • 既要写后端,django
    • 又要写前端

【2】前后端分离

  • 后端人员
    • 只写后端,写一个个的API接口
  • 前端人员
    • 只写前端
  • 最后项目写完
    • 前后端联调

二、API接口

为了在团队内部形成共识、防止个人习惯差异引起的混乱,我们需要找到一种大家都觉得很好的接口实现规范,而且这种规范能够让后端写的接口,用途一目了然,减少双方之间的合作成本。

通过网络,规定了前后台信息交互规则的url链接,也就是前后台信息交互的媒介。它称之为API接口。

前端:

  • 向后端发送请求,获取数据
  • 127.0.0.1:8080/index --->返回数据

后端:

  • 请求某个地址,返回固定的数据

Web API接口和一般的url链接还是有区别的,Web API接口简单概括有下面四大特点

  • url:长得像返回数据的url链接

    • https://api.map.baidu.com/place/v2/search
  • 请求方式:get、post、put、patch、delete

    • 采用get方式请求上方接口
  • 请求参数:json或xml格式的key-value类型数据

    • ak:6E823f587c95f0148c19993539b99295
    • region:上海
    • query:肯德基
    • output:json
  • 响应结果:json或xml格式的数据

    • 上方请求参数的output参数值决定了响应数据的格式

三、接口测试工具:Postman

Postman是一款接口调试工具,是一款免费的可视化软件,同时支持各种操作系统平台,是测试接口的首选工具。

Postman可以直接从官网:https://www.getpostman.com/downloads/下载获得,然后进行傻瓜式安装。(注:需要注册一下使用或者一个Google账号也可)

  • 工作面板

  • 简易的get请求

  • 简易的post请求

  • 案例:请求百度地图接口

四、RESTful API规范

【1】什么是RESTful

REST全称是Representational State Transfer(中文意思是表征性状态转移)。 它首次出现在2000年Roy Fielding的博士论文中。

RESTful是一种定义Web API接口的设计风格,尤其适用于前后端分离的应用模式中。

【2】RESTful API的规范

2.1 数据的安全保障

  • url链接一般都采用https协议进行传输

    • https是http+ssl --->  安全的超文本传输协议

注:采用https协议,可以提高数据交互过程中的安全性

2.2 接口特征表现

  • 在API地址中带接口标识,我们一般放在地址栏中(放在域名中):

    • https://api.baidu.com
    • https://www.baidu.com/api

    注:看到api字眼,就代表该请求url链接是完成前后台数据交互的

2.3 多数据版本共存

  • 在url链接中标识数据版本

    • https://api.baidu.com/v1
    • https://api.baidu.com/v2

    注:url链接中的v1、v2就是不同数据版本的体现(只有在一种数据资源有多版本情况下)

2.4 数据即是资源,均使用名词(可复数)

  • 接口一般都是完成前后台数据的交互,交互的数据我们称之为资源

    • https://api.baidu.com/users
    • https://api.baidu.com/books
    • https://api.baidu.com/book

    注:资源名都是名词,尽量避免使用动词,错误示范:https://api.baidu.com/delete-user

  • 特殊的接口可以出现动词,因为这些接口一般没有一个明确的资源,或是动词就是接口的核心含义

    • https://api.baidu.com/place/search
    • https://api.baidu.com/login

2.5 资源操作由请求方式决定(method)

  • 操作资源一般都会涉及到增删改查,我们提供请求方式来标识增删改查动作
    • 获取资源用get
    • 新增资源用post
    • 修改资源使用put
    • 删除资源使用delete
https://api.baidu.com/books     - get请求:获取所有书https://api.baidu.com/books/1   - get请求:获取主键为1的书https://api.baidu.com/books     - post请求:新增一本书书https://api.baidu.com/books/1   - put请求:整体修改主键为1的书https://api.baidu.com/books/1   - patch请求:局部修改主键为1的书https://api.baidu.com/books/1   - delete请求:删除主键为1的书
​

2.6 url中带搜索或过滤条件​​​​​​​

https://api.example.com/v1/zoos?name=猴子   get请求

2.7 响应状态码

  • 2.7.1 正常响应
    • 响应状态码2xx
      • 200:常规请求
      • 201:创建成功
  • 2.7.2 重定向响应
    • 响应状态码3xx
      • 301:永久重定向
      • 302:暂时重定向
  • 2.7.3 客户端异常
    • 响应状态码4xx
      • 403:请求无权限
      • 404:请求路径不存在
      • 405:请求方法不存在
  • 2.7.4 服务器异常
    • 响应状态码5xx
      • 500:服务器异常

2.8 返回中带错误信息

{code:100,msg:成功}
"Message": "send success",

2.9 返回结果,符合以下规范

GET /collection: 返回资源对象的列表(数组)
GET /collection/resource: 返回单个资源对象
POST /collection: 返回新生成的资源对象
PUT /collection/resource: 返回完整的资源对象
PATCH /collection/resource: 返回完整的资源对象
DELETE /collection/resource:返回一个空文档

2.10 返回数据中带url链接

"url": "http://blog.sina.com.cn/zaku",

相关文章:

DRF之引入

目录 一、web应用模式 【1】前后端混合开发 【2】前后端分离 二、API接口 三、接口测试工具:Postman 四、RESTful API规范 【1】什么是RESTful 【2】RESTful API的规范 2.1 数据的安全保障 2.2 接口特征表现 2.3 多数据版本共存 2.4 数据即是资源&#…...

【Skynet 入门实战练习】事件模块 | 批处理模块 | GM 指令 | 模糊搜索

文章目录 前言事件模块批处理模块GM 指令模块模糊搜索最后 前言 本节完善了项目,实现了事件、批处理、模糊搜索模块、GM 指令模块。 事件模块 什么是事件模块?事件模块是用来在各系统之间传递事件消息的。 为什么需要事件模块?主要目的是…...

Web组态可视化编辑器-by组态

演示地址: http://www.by-lot.com http://www.byzt.net web组态可视化编辑器:引领未来可视化编辑的新潮流 随着网络的普及和快速发展,web组态可视化编辑器应运而生,为人们在网络世界中创建和编辑内容提供了更加便捷的操作方式。这…...

PDF.js介绍以及使用

一、PDF.js是什么 PDF.js是一个JavaScript库,可以在现代Web浏览器中渲染和显示PDF文件。它的主要作用是将PDF文件转换为HTML5格式,以便在浏览器上进行展示和交互。 PDF.js的主要功能包括: 在浏览器中显示PDF:PDF.js使用HTML5的…...

经常使用的排序算法

一、直接插入排序 #include <stdio.h>void insert_sort(int arr[], int n){int i, j, tmp;for (i 1; i < n; i){tmp arr[i];j i - 1;while (j > 0 && arr[j] > tmp){ // 将要插入的元素与数组中的元素比较&#xff08;从后向前比&#xff09;arr[j …...

msyql 24day 数据库主从 主从复制 读写分离 master slave 有数据如何增加

目录 环境介绍读写分离纵向扩展横向扩展 数据库主从准备环境主库环境(master)从库配置(slave)状态分析重新配置问题分析 报错解决从库验证 有数据的情况下 去做主从清理环境环境准备数据库中的锁的机制主库配置从库配置最后给主库解锁常见错误 环境介绍 将一个数据库的数据 复…...

使用 Taro 开发鸿蒙原生应用 —— 探秘适配鸿蒙 ArkTS 的工作原理

背景 在上一篇文章中&#xff0c;我们已经了解到华为即将发布的鸿蒙操作系统纯血版本——鸿蒙 Next&#xff0c;以及各个互联网厂商开展鸿蒙应用开发的消息。其中&#xff0c;Taro作为一个重要的前端开发框架&#xff0c;也积极适配鸿蒙的新一代语言框架 —— ArkTS。 本文将…...

Linux下 自定义多线程并发快速压缩解压缩脚本

文章目录 自定义多线程压缩解压缩脚本使用 Linux下 自定义多线程并发快速压缩解压缩脚本 Linux下常用的tar工具无法支持并行 压缩和解压&#xff0c;对于大量小文件的解压缩&#xff0c;可借助pigz工具实现多线程并行工作&#xff0c;实现更为高效的压缩和解压缩。 自定义多线…...

ubuntu20.04下安装pcl_ubuntu安装pcl

pcl点云数据库&#xff0c;用来进行3D信息的获取与处理&#xff0c;和opencv相比较&#xff0c;opencv是用来处理二维信息&#xff0c;他是学术界与工业界针对点云最全的库&#xff0c;且网络上相关的资料很多。以下是pcl的安装步骤以及遇到的问题。 提前说明&#xff0c;本人…...

阿里云常用配置:日志采集、OSS、RAM 权限策略

文章目录 引言I 日志采集1.1 具体查询语法1.2 查询示例1.3 设置token时间(登录过期时间)II OSS2.1 设置防盗链2.2 验证Referer防盗链是否生效III 通义灵码 (智能编码)IV RAM 权限策略4.1 短信策略4.2 内容风险检测引言 SLS I 日志采集...

回顾丨2023 SpeechHome 第三届语音技术研讨会

下面是整体会议的内容回顾&#xff1a; 18日线上直播回顾 18日上午9:30&#xff0c;AISHELL & SpeechHome CEO卜辉宣布研讨会开始&#xff0c;并简要介绍本次研讨会的筹备情况以及报告内容。随后&#xff0c;CCF语音对话与听觉专委会副主任、清华大学教授郑方&#xff0c…...

【flink】状态清理策略(TTL)

flink的keyed state是有有效期(TTL)的&#xff0c;使用和说明在官网描述的篇幅也比较多&#xff0c;对于三种清理策略没有进行横向对比得很清晰。 全量快照清理(FULL_STATE_SCAN_SNAPSHOT)增量清理(INCREMENTAL_CLEANUP)rocksdb压缩清理(ROCKSDB_COMPACTION_FILTER) 注意&…...

4. 行为模式 - 中介者模式

亦称&#xff1a; 调解人、控制器、Intermediary、Controller、Mediator 意图 中介者模式是一种行为设计模式&#xff0c; 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互&#xff0c; 迫使它们通过一个中介者对象进行合作。 问题 假如你有一个创建…...

2015年第四届数学建模国际赛小美赛A题飞机上的细长座椅解题全过程文档及程序

2015年第四届数学建模国际赛小美赛 A题 飞机上的细长座椅 原题再现&#xff1a; 航空公司座位是指在旅途中乘客可以乘坐的座位。一些航空公司现在推出了新的经济舱“超薄”座位。这些座椅除了重量较轻外&#xff0c;理论上还允许航空公司在不显著影响乘客舒适度的情况下增加运…...

机器学习笔记(二)使用paddlepaddle,再探波士顿房价预测

目标 用paddlepaddle来重写之前那个手写的梯度下降方案&#xff0c;简化内容 流程 实际上就做了几个事&#xff1a; 数据准备&#xff1a;将一个批次的数据先转换成nparray格式&#xff0c;再转换成Tensor格式前向计算&#xff1a;将一个批次的样本数据灌入网络中&#xff…...

【Linux】权限篇(二)

权限目录 1. 前言2. 权限2.1 修改权限2.2 有无权限的对比2.3 另外一个修改权限的方法2.3.1 更改用户角色2.3.2 修改文件权限属性 3. 第一个属性列4. 目录权限5. 默认权限 1. 前言 在之前的一篇博客中分享了关于权限的一些知识&#xff0c;这次紧接上次的进行&#xff0c;有需要…...

reduce累加器的应用

有如下json数据&#xff0c;需要统计Status的值为0和1的数量 const data {"code": "001","results": [{"Status": "0",},{"Status": "0",},{"Status": "1",}] }方法一:用reduce方…...

助力硬件测试工程师之EMC项目测试。

1&#xff1a;更新该系列的目的 接下来的一个月内&#xff0c;将更新硬件测试工程师的其中测试项目--EMC项目&#xff0c;后续将会出安规等项目&#xff0c;助力测试工程师的学习。 2&#xff1a;如何高效率的展现项目的基础以及一些细节知识点 通过思维导图以及标准的规定进行…...

Github 2023-12-23 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2023-12-23统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目6C项目2C项目1Jupyter Notebook项目1HTML项目1Go项目1非开发语言项目1 免费API集体清单 创建周期…...

Quartz.net 正则表达式触发器

1、创建项目 项目类型控制台应用程序&#xff0c;.Net Framework框架版本 4.7.2 2、引入框架 NuGet\Install-Package Quartz -Version 3.8.0 3、创建Job 自定义Job实现接口IJob&#xff0c;在Execute方法实现定时逻辑&#xff0c; using Quartz; using System; using Sys…...

【已解决】修改了网站的class样式name值,会影响SEO,搜索引擎抓取网站及排名吗?

问题&#xff1a; 修改了网站的class样式name值&#xff0c;会影响搜索引擎抓取网站及排名吗&#xff1f; 解答&#xff1a; 如果你仅仅修改了网站class样式的名称&#xff0c;而没有改变网站的结构和内容&#xff0c;那么搜索引擎通常不会因此而影响它对网站的抓取和排名。但…...

微信小程序开发系列-02注册小程序

上一篇文章&#xff0c;创建了一个最小的小程序&#xff0c;但是&#xff0c;还有3个疑问没有弄清楚&#xff0c;还是基于demo1工程&#xff0c;这篇文章继续探索。 当前的目录结构是否是完备的呢&#xff1f;&#xff08;虽然小程序可以运行起来&#xff09;app.js文件内容还…...

安装 PyCharm 2021.1 保姆级教程

作者&#xff1a;billy 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 前言 目前能下载到的最新版本是 PyCharm 2021.1。 请注意对应 Python 的版本&#xff1a; Python 2: 2.7Python 3: >3.6, <3.11…...

浏览器 cookie 的原理(详)

目录 1&#xff0c;cookie 的出现2&#xff0c;cookie 的组成浏览器自动发送 cookie 的条件 3&#xff0c;设置 cookie3.1&#xff0c;服务端设置3.1&#xff0c;客户端设置3.3&#xff0c;删除 cookie 4&#xff0c;使用流程总结 整理和测试花了很大时间&#xff0c;如果对你有…...

StringBuilder和StringBuffer区别是什么?

想象一下&#xff0c;你在写信&#xff0c;但是你需要不断地添加新的内容或者修改一些词句。在编程中&#xff0c;当你需要这样操作字符串时&#xff0c;就可以用StringBuffer或StringBuilder。 StringBuffer StringBuffer就像是一个多人协作写作的工具。如果你和你的朋友们一…...

【数据分析】数据指标的分类及应用场景

数据分析之数据指标的分类 数据分析离不开对关键指标的分析与跟踪&#xff0c;这些指标通常与具体的业务直接相关。好的指标能够促进业务的健康发展&#xff0c;因为指标与业务目标是一致的&#xff0c;此时指标就能反映业务变化&#xff0c;指标发生变化&#xff0c;行动也发…...

首涂第二十八套_新版海螺M3多功能苹果CMSv10自适应全屏高端模板

首涂第二十八套_新版海螺M3多功能苹果cmsv10自适应全屏高端模板 多功能苹果cmsv10自适应全屏高端模板开源授权版 这是一款带“主题管理系统”的模板。这是一款好模板。 花大价钱收购了海螺这两个模板的版权。官方正品&#xff0c;非盗版。关闭域名授权 后台自定义菜单 请把…...

MatGPT - 访问 OpenAI™ ChatGPT API 的 MATLAB® 应用程序

系列文章目录 前言 MatGPT 是一款 MATLAB 应用程序&#xff0c;可让您轻松访问 OpenAI 的 ChatGPT API。使用该应用程序&#xff0c;您可以加载特定用例的提示列表&#xff0c;并轻松参与对话。如果您是 ChatGPT 和提示工程方面的新手&#xff0c;MatGPT 不失为一个学习的好方…...

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot 起因&#xff1a;我接手tomcat-springmvc-hibernate项目&#xff0c;使用tomcat时问题不大。自从信创开始&#xff0c;部分市场使用国产中间件&#xff0c;例如第一次听说的宝兰德、东方通&#xff0c;还…...

浅述无人机技术在地质灾害应急救援场景中的应用

12月18日23时&#xff0c;甘肃临夏州积石山县发生6.2级地震&#xff0c;震源深度10千米&#xff0c;灾区电力、通信受到影响。地震发生后&#xff0c;无人机技术也火速应用在灾区的应急抢险中。目前&#xff0c;根据受灾地区实际情况&#xff0c;翼龙-2H应急救灾型无人机已出动…...

网站数据库网络错误/谷歌seo零基础教程

转自 http://www.runoob.com/mongodb/nosql.html NoSQL(NoSQL Not Only SQL )&#xff0c;意即”不仅仅是SQL”。 在计算机科学中, CAP定理&#xff08;CAP theorem&#xff09;, 又被称作 布鲁尔定理&#xff08;Brewer’s theorem&#xff09;, 它指出对于一个分布式计算系…...

自助建站空间怎么用/品牌推广策略有哪几种

Linux解决rm 删除大文件后 磁盘空间无法释放的问题在Linux中&#xff0c;当我们使用rm在linux上删除了大文件&#xff0c;但是如果有进程打开了这个大文件&#xff0c;却没有关闭这个文件的句柄&#xff0c;那么linux内核还是不会释放这个文件的磁盘空间&#xff0c;最后造成磁…...

济南微网站开发/百度一下首页网页手机版

jsp的常用指令有哪些(编译指令/动作指令整理) JSP动作指令 JSP - JSP中的脚本、指令、动作和注释...

免费x网站域名/软文范文大全1000字

背景 在垃圾短信过滤应用 SMSFilters 中&#xff0c;需要使用 Jieba 分词库来対短信进行分词&#xff0c;然后使用 TF-IDF 来进行处理 分词库是 C 写的&#xff0c;这就意味着需要在Swift中集成 C 库。在官方文档 "Using Swift with Cocoa and Objective-C" 中&#…...

做网站分销违法吗/沈阳优化推广哪家好

显卡驱动程序就是用来驱动显卡的程序&#xff0c;它是硬件所对应的软件。驱动程序即添加到操作系统中的一小块代码&#xff0c;其中包含有关硬件设备的信息。有了此信息&#xff0c;计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件&#xff0c;可以…...

wordpress控件图标/百度 营销推广怎么操作

文章讲的是未来最赚钱的行业三甲&#xff0c;必须必是它们&#xff0c;随着云计算、大数据的发展&#xff0c;人工智能的研发也已经越来越精进&#xff0c;虽然人工智能尚处在初始阶段&#xff0c;但不可否认这个领域存在着大量的商机。 商机大的地方&#xff0c;一定少不了各大…...