首页 > 其他分享 >web应用模式、api接口、接口测试工具postman、restful规范

web应用模式、api接口、接口测试工具postman、restful规范

时间:2023-02-02 22:56:39浏览次数:64  
标签:web 请求 -- 接口 --- api https 测试工具

引用:https://www.cnblogs.com/liuqingzheng/p/9506212.html

今日内容概要

  • web应用模式
  • API接口
  • 接口测试工具postman
  • restful规范

内容详细

1、web应用模式

# 前后端混合开发
	-bbs项目,页面渲染是在后台完成:
		render(request,'index.html')
        
	-后端人员:
		写前端css,js,html

        
# 前后端分离开发---》当前主流---》(原因)前端发展出一些框架(vue,react)
	-js的dom操作---》html页面--》通过js在页面中插入内容
		-bom和dom
        
	-不用模板语法渲染页面了----》在前端使用js渲染页面
	-页面渲染在前端完成
	-以后前端人员只负责写前端
	-后端人员只负责写后端
	-前端的展现形式---》不一定只是网页,可能是app,小程序
    
https://www.cnblogs.com/liuqingzheng/p/10900502.html

image

image

2、API接口

# api接口:前后端交互的媒介

# 接口有的东西
	-url地址
	-请求方式:get ,post
	-请求参数:name='西游记'
		get请求--->127.0.0.1/books?name='西游记'
	-响应结果
		-http响应--》响应状态码--》响应头---》响应体(json)
        
# 响应状态码:    
200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)
201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功
202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT - [DELETE]:用户删除数据成功

400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的
401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)
403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的
404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的
406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)
410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的
422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误

500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功 

3、接口测试工具postman

# 接口测试工具:mac,win,linux都可以

# 对接口进行测试---》在浏览器中只能发送get请求,发不了post,delete..

# 使用最多的软件:postman ---》后来慢慢收费了:Postwoman

# 下载地址:https://www.getpostman.com/downloads/
	-双击 傻瓜式安装就装完了
    
# 前后端交互的编码格式有哪几种?
	-urlencoded:正常的post请求提交数据:name=lqz&age=19
	-formdata:post请求上传文件:带文件二进制形式
	-json:body体中的数据格式为:{"name":"lqz","age":19}--》用的多

image

4、restful规范(重要)

# 前后端交互使用api接口需要符合某种规范
	-restful规范---》写前后端分离的标准
    
# REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征性状态转移)。 它首次出现在2000年Roy Fielding的博士论文中。

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


https://api.weibo.com/2/account/get_uid.json
# restful规范10条内容:
	-1 数据的安全保障--》通常使用https协议
    
	-2 用api关键字标识接口---》在接口中带api字眼--》让别人一看就知道这是个api接口
		-https://api.baidu.com/books
		-https://127.0.0.1:8080/api/books
        
	-3 多版本共存--->在接口地址中带版本号---》
		eg:
			-有的人用了老版本app--》老接口v1
			-有的人用了新版本app--》新接口v2
			-都留---》提示尽快升级---》xx年我们就不支持xx以下版本了
		-https://api.baidu.com/v1/login
		-https://api.baidu.com/v2/login
                
	-4 数据即是资源,均使用名词(可复数)--》请求地址中尽量不出现动词
		-https://api.baidu.com/v1/users  # 获取用户,删除用户,新增用户
   
	-5 资源操作由请求方式决定-->get,post,delete ,put,patch
		-get请求是获取数据
		-post请求是新增数据
		-delete请求是删除数据
		-put请求是修改数据
		-patch请求是局部修改数据
    
	-6 请求地址中带过滤条件
		-https://api.example.com/v1/zoos?limit=10  # 返回10条数据
		-https://api.example.com/v1/books?name=西游记  # 查询名字是西游记的这本书
      
	-7 响应状态码(http的响应状态码,响应体的json数据中带状态码)
		-http的响应状态码:
			-1xx:请求正在处理
			-2xx:请求成功(200,201)  200和201有什么区别?
			-3xx:重定向 (301和302有什么区别)
			-4xx:客户端错误(404:地址不存在,403:禁止了)
			-5xx:服务端错误 
		-响应体中返回json格式数据---》code,status--->也有状态码---》服务端自定义的
		-1001  :用户名错误
		-1002  :没有权限
      
	-8 错误处理,应返回错误信息
		-返回数据是json格式--》带状态码---》错误信息
		{
			error: "无权限操作"
		}
        
	-9 返回数据格式符合如下规范(大部分公司不按这个)
		-多条数据返回列表
			GET /collection:返回资源对象的列表 [{name:lqz,age:19},{name:pyy,age:33}]
        
		-单条数据返回字典
			GET /collection/resource:返回单个资源对象 {name:lqz,age:19}
            
		-新增,返回新增的对象---》{name:lqz,age:19}
			POST /collection:返回新生成的资源对象
    
		-修改,返回修改后的对象--》{name:lqz,age:19}
			PUT /collection/resource:返回完整的资源对象
            
		-修改,返回修改后的对象--》{name:lqz,age:19}
			PATCH /collection/resource:返回完整的资源对象
            
		-删除,返回空文档
			DELETE /collection/resource:返回一个空文档  -->{code:100,msg:删除成功}
  
  
	-10 返回资源中链接地址
		{
			"id": 1404376560,
			"description": "人生五十年,乃如梦如幻;有生斯有死,壮士复何憾。",
			"url": "http://blog.sina.com.cn/zaku",
			"profile_image_url": "http://tp1.sinaimg.cn/1404376560/50/0/1",
			"domain": "zaku",
		}

标签:web,请求,--,接口,---,api,https,测试工具
From: https://www.cnblogs.com/MRPython/p/17087669.html

相关文章

  • 接口
    接口普通类:只有具体实现抽象类:具体实现和规范(抽象方法)都有接口:只有规范,自己无法写方法,专业的约束!约束和实现分离,面向接口编程接口就是规范,定义的是一组规则,体现了......
  • Spring Boot + WebSocket 实时监控异常
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校......
  • drf快速编写接口
    创建序列化类字段参数fromrest_frameworkimportserializersfromapp01.modelsimportBook举例:classBooksSerializer(serializers.Serializer):name=seria......
  • web版WebRTC使用
    文档说明:只记录关键地方;2023-02-02目标:熟悉WebRTC的使用letbegin=null;letpeerConnection=null;//Parsetheuint32PRIORITYfieldintoitsconstituentpart......
  • 7. CTFshow 反序列化 web258
    一、代码<?phperror_reporting(0);highlight_file(__FILE__);classctfShowUser{private$username='xxxxxx';private$password='xxxxxx';private$......
  • 6. CTFshow 反序列化 web257
    一、代码<?phperror_reporting(0);highlight_file(__FILE__);classctfShowUser{private$username='xxxxxx';private$password='xxxxxx';private$......
  • VUE API接口的统一管理
    vue项目对api进行封装统一管理在日常vue项目中或刚接收一个vue项目,如果项目足够大,就需要进行统一管理和规范接口了1.js文件创建先在src目录下新建一个api文件夹,然后......
  • 解决接口正常返回但el-table一直loading的问题
    问题描述:页面初始化的时候,el-table数据能正常展示 这时候任意选择一个查询条件,列表则一直处于loading状态。经排查,接口数据正常返回,但控制台多了个错误信息。 ......
  • 使用python编写简单的api接口
    先安装flask模块pipinstallFlaskpy文件fromflaskimportFlask,request,jsonifyapp=Flask(__name__)@app.route('/hello_world')defhello_world():r......
  • 接口测试|HttpRunner接口关联与常用断言
    HttpRunner接口关联与常用断言接口关联日常工作中,我们在请求很多接口的时候需要先登录获取cookie或者token,作为后续请求其他接口的凭证,这需要我们将接口关联起来。以企业微......