接口基础知识:
简单说下接口测试,现在常用的2种接口就是http api和rpc协议的接口,今天主要说:http api接口是走http协议通过路径来区分调用的方法,请求报文格式都是key-value形式,返回报文一般是json串;
接口协议:http、webservice、rpc等。
请求方式:get、post方式
请求参数格式:
a. get请求都是通过url?param=xxx¶m1=xxx
b. post请求的请求参数常用类型有:application/json、application/x-www-form-urlencoded、multipart/form-data、text/html等。
还需要知道接口的url、参数类型、返回结果的数据格式、了解接口是否有header、cookie等信息。
请求方式-get、post都可以访问,写法如下:
import flask
from flask import jsonify
from flask import request
from conf import opMysql
from conf import md5_create
'''
注册接口:
post请求,请求参数入参类型json
{
"username":"aaa",
"pwd":"123456",
"c_pwd":"123456"
}
'''
server = flask.Flask(__name__)
@server.route('/register', methods=['get', 'post'])
def registerPost():
# post请求获取请求的参数,返回结果类型是str
username = request.values.get('username')
pwd = request.values.get('pwd')
confirmpwd = request.values.get('confirmpwd')
if username and pwd and confirmpwd: # 判断输入的用户名、密码、确认密码都不为空
select_sql = 'select username from lhldemo where username = "%s" ;' % username
# 查询注册的用户是否存在数据库,如果存在,则username不为空,否则username为空
res_mysql = opMysql.op_select(select_sql)
if res_mysql:
return jsonify({"code": 999, "mesg": "用户已注册"})
else:
if pwd == confirmpwd: # 判断pwd和confirmpwd一致
new_pwd = md5_create.md5_test(pwd) # 加密后的密码
insert_sql = 'insert into lhldemo(username,password) values("%s", "%s") ;' % (username, new_pwd)
opMysql.op_insert(insert_sql)
return jsonify({"code": 200, "msg": "注册成功"})
else:
return jsonify({"code": 998, "msg": "密码不一样"})
else:
return jsonify({"code": 504, "msg": "必填项不能为空"})
if __name__ == '__main__':
# port可以指定端口,默认端口是5000
# host默认是127.0.0.1,写成0.0.0.0的话,其他人可以访问,代表监听多块网卡上面,
server.run(debug=True, port=8899, host='0.0.0.0')
可以通过以下2种方式进行post请求,一种如下:
- 通过url拼接参数
http://127.0.0.1:8899/register?name=aaa&pwd=123456 - 通过key-value方式进行访问
http://127.0.0.1:8899/register