首页 > 其他分享 >drf : web应用模式,RESTful API规范,接口测试工具:Postman

drf : web应用模式,RESTful API规范,接口测试工具:Postman

时间:2024-03-25 10:22:05浏览次数:36  
标签:baidu web Postman url 接口 api https 测试工具 com

drf : web应用模式,RESTful API规范,接口测试工具:Postman

Web应用模式

前后端不分离
前后端分离

API接口

前后端交互的媒介

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参数值决定了响应数据的格式
    • 数据

xml格式

https://api.map.baidu.com/place/v2/search?ak=6E823f587c95f0148c19993539b99295&region=%E4%B8%8A%E6%B5%B7&query=%E8%82%AF%E5%BE%B7%E5%9F%BA&output=xml
#json格式
https://api.map.baidu.com/place/v2/search?ak=6E823f587c95f0148c19993539b99295&region=%E4%B8%8A%E6%B5%B7&query=%E8%82%AF%E5%BE%B7%E5%9F%BA&output=json
{
   "status":0,
 	"message":"ok",
   "results":[
       {
           "name":"肯德基(罗餐厅)",
           "location":{
               "lat":31.415354,
               "lng":121.357339
           },
           "address":"月罗路2380号",
           "province":"上海市",
           "city":"上海市",
           "area":"宝山区",
           "street_id":"339ed41ae1d6dc320a5cb37c",
           "telephone":"(021)56761006",
           "detail":1,
           "uid":"339ed41ae1d6dc320a5cb37c"
       }
     	...
   	]
}

接口测试工具:Postman

接口测试工具其本质均为模拟发送HTTP的请求。

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

Postman可以直接从官网:https://www.getpostman.com/downloads/下载获得,然后进行傻瓜式安装。

工作面板
img

简易的get请求
img

简易的post请求
img

案例:肯德基请求百度地图接口
img

RESTful API规范

restful

REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征性状态转移)。 它首次出现在2000年Roy Fielding的博士论文中。

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

这种风格的理念认为后端开发任务就是提供数据的,对外提供的是数据资源的访问接口,所以在定义接口时,客户端访问的URL路径就表示这种要操作的数据资源。

事实上,我们可以使用任何一个框架都可以实现符合restful规范的API接口。

1 数据的安全保障

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

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

2 接口特征表现

3 多数据版本共存

在url链接中标识数据版本

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

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

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

操作资源一般都会涉及到增删改查,我们提供请求方式来标识增删改查动作
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的书

6 过滤,通过在url上传参的形式传递搜索条件

错误处理,应返回错误信息,error当做key

{
    error: "无权限操作"
}

返回结果,针对不同操作,服务器向用户返回的结果应该符合以下规范

GET /collection:返回资源对象的列表(数组)
GET /collection/resource:返回单个资源对象
POST /collection:返回新生成的资源对象
PUT /collection/resource:返回完整的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档
需要url请求的资源需要访问资源的请求链接
# Hypermedia API,RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么
{
  	"status": 0,
  	"msg": "ok",
  	"results":[
        {
            "name":"肯德基(罗餐厅)",
            "img": "https://image.baidu.com/kfc/001.png"
        }
      	...
		]
}

比较好的接口返回

# 响应数据要有状态码、状态信息以及数据本身
{
  	"status": 0,
  	"msg": "ok",
  	"results":[
        {
            "name":"肯德基(罗餐厅)",
            "location":{
                "lat":31.415354,
                "lng":121.357339
            },
            "address":"月罗路2380号",
            "province":"上海市",
            "city":"上海市",
            "area":"宝山区",
            "street_id":"339ed41ae1d6dc320a5cb37c",
            "telephone":"(021)56761006",
            "detail":1,
            "uid":"339ed41ae1d6dc320a5cb37c"
        }
      	...
		]
}

RESTful 核心总结:

# 1.使用http协议进行传输数据
# 2.url 携带关键字api
	https://api.baidu.com
	https://www.baidu.com/api
# 3.url中带版本信息
	https://api.baidu.com/v1
	https://api.baidu.com/v2
# 4. 在url中有数据版本(v1版本,v2版本)
  https://api.baidu.com/users
  https://api.baidu.com/books
  https://api.baidu.com/book
# 5. 数据即资源,url均使用名词
	查询操作---get
        新增操作---post
        修改操作---put,patch
 	删除操作---delete
# 6. 请求url中带搜索条件
https://api.example.com/v1/zoos?page=2&per_page=100:指定第几页,以及每页的记录数
https://api.example.com/v1/zoos?animal_type_id=1:指定筛选条件
# 7. 响应中要带状态码
	公司会自定义状态码
  {
    status:200
  }
# 8. 响应返回错误信息,错误处理
{
  status : 200,
  msg : '无权限操作'
}
# 9. 返回结果,遵循如下规范。
  GET /collection:返回资源对象的列表(数组)
  GET /collection/resource:返回单个资源对象
  POST /collection:返回新生成的资源对象
  PUT /collection/resource:返回完整的资源对象
  PATCH /collection/resource:返回完整的资源对象
  DELETE /collection/resource:返回一个空文档
# 10.返回数据中带请求连接
# Hypermedia API,RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么
{
  	"status": 0,
  	"msg": "ok",
  	"results":[
        {
            "name":"肯德基(罗餐厅)",
            "img": "https://image.baidu.com/kfc/001.png"
        }
      	...
		]
}

标签:baidu,web,Postman,url,接口,api,https,测试工具,com
From: https://www.cnblogs.com/HeroZhang/p/18093827

相关文章

  • 【附源码】django计算机毕业设计web的诗词信息管理平台(源码+mysql+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在当今信息化时代,诗词作为中华民族传统文化的瑰宝,承载着丰富的历史和文化价值。然而,随着科技的发展和生活节奏的加快,人们对于诗词的接触和传承逐渐减少,尤其......
  • 【附源码】django计算机毕业设计web技术的养老服务平台(源码+mysql+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义养老服务平台开发设计背景:随着社会老龄化的加剧,养老问题逐渐成为社会关注的热点。老年人作为社会的重要组成部分,他们的生活质量和幸福感直接关系到社会的和谐与稳定......
  • ETL工具-nifi干货系列 第三讲 nifi web ui 使用教程
    1、nifi服务启动之后,浏览器输入https://localhost:8443/nifi ,匿名登录或者输入用户名密码进入操作页面,如下图所示:2、组件工具栏处理器,鼠标放到图标上提示Processor,里面里面有各种各样的组件,可以实现各种各样的功能。 拖拉处理器到画布中,出现处理器选择列表,可以根据处理......
  • Docker重新编译webBenchmark镜像
    1.编译环境SystemVersion:Centos8DockerVersion:WebBenchmarkVersion:webBenchmark_linux_arm2.编写Dockerfile1.创建编译目录mkdirnetworkdownload2.创建Dockerfile文件并编写2.1创建Dockerfile文件touchDockerfile2.2编写Dockerfile文件FROMalp......
  • NKCTF2024-WEB-gxngxngxn
    WEBmyfirstcmscmsmadesimple2.2.19参考:GitHub-capture0x/CMSMadeSimple后台有个rce漏洞访问/admin路由直接爆破弱口令得到admin/Admin123然后访问admin/editusertag.php修改为:<?phpechosystem('cat/_fffff1@g');?>得到flag用过就是熟悉拿到源码进行审......
  • 【JavaWeb】Day19.Vue组件库Element——常见组件
    一.Element常见组件-表格Table表格:用于展示多条结构类似的数据,可对数据进行排序、筛选、对比或其他自定义操作。首先打开官网找到表格(Element-Theworld'smostpopularVueUIframework)以带边框表格为例,点击显示代码把代码复制到自己的vue项目中点击npm脚本运行,......
  • 【JavaWeb】Day18.Vue组件库Element
    什么是ElementElement:是饿了么团队研发的,一套为开发者、设计师和产品经理准备的基于Vue2.0的桌面端组件库。组件:组成网页的部件,例如超链接、按钮、图片、表格、表单、分页条等等。官网:Element-Theworld'smostpopularVueUIframeworkElement快速入门安装ElementUI......
  • 【javaWeb &第三篇】Vue快速入门
    VUEvue是一套前端框架,免除原生的js的DOM操作,简化书写基于MVVM(model-view-viewmodel)思想,实现数据的双向绑定,将编程的关注放在数据上。什么是框架:框架相当于一个半成品,是一套高效的代码模板,基于框架开发更加的高效VUE数据绑定模型:model层中存在着对数据的处理,vi......
  • python自动化——web自动化框架常用封装代码复习——当你会开发之后,发现一切都是如此
    PS:  PO模式知识点如下: 1、知识点:函数的书写、类、继承,模块导入; 2、思路:分层,抽离;     =====================================================================          编写用例基础版本:   pytest参数化,以及原始selenium用例编......
  • python趣味编程-使用 Django 和 WebSockets 的 Python 简单实时聊天室网站
    在Python中使用Django的简单实时聊天室系统该项目名为“简单实时聊天室系统”。这是一个使用Python和DjangoFramework开发的基于Web的应用程序。该应用程序是一个供随机用户使用的简单聊天室。所有人都可以在一个聊天框或对话框中进行交流。聊天消息会自动更新到所......