接口基礎知識:
簡單說下接口測試,現在常用的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,接口的寫法:
 import flask from flask import request from flask import jsonify import tools import OP_db import settings ''' flask: web框架,可以通過flask提供的裝飾器@server.route()將普通函數轉換為服務 登錄接口,需要傳url、username、passwd ''' #創建一個服務,把當前這個python文件當做一個服務 server = flask.Flask(__name__) #server.config['JSON_AS_ASCII'] = False  # @server.route()可以將普通函數轉變為服務 登錄接口的路徑、請求方式 @server.route('/login', methods=['get']) def login():  # 獲取通過url請求傳參的數據  username = request.values.get('name')  # 獲取url請求傳的密碼,明文  pwd = request.values.get('pwd')  # 判斷用戶名、密碼都不為空,如果不傳用戶名、密碼則username和pwd為None  if username and pwd:   # 獲取加密后的密碼   password = tools.md5_pwd(pwd)   #執行sql,如果查詢的username和password不為空,說明數據庫存在admin的賬號   sql = 'select name,password from test where name= "%s" and password= "%s";' %(username, password)   # 從數據查詢結果后,res返回是元組   res = OP_db.getconn(    host=settings.mysql_info['host'],    user=settings.mysql_info['user'],    passwd=settings.mysql_info['pwd'],    db=settings.mysql_info['db'],    port=settings.mysql_info['port'],    sql=sql   )   if res:  #res的結果不為空,說明找到了username=admin的用戶,且password為加密前的123456    resu = {'code': 200, 'message': '登錄成功'}    return jsonify(resu) #將字典轉換為json串, json是字符串   else:    resu = {'code': -1, 'message': '賬號/密碼錯誤'}    return jsonify(resu)  else:   res = {'code': 999, 'message': '必填參數未填寫'}   return jsonify(res)  if __name__ == '__main__':  server.run(debug=True, port=8888, host=0.0.0.0) #指定端口、host,0.0.0.0代表不管幾個網卡,任何ip都可以訪問md5加密、數據庫mysql的操作詳見我的其他博客~~~~~get訪問接口:
項目啟動后,接口的地址是:http://127.0.0.1:5000/,默認端口是5000。
打開瀏覽器,輸入urlhttp://127.0.0.1:5000/xxx?name=xxx&pwd=123456,后面跟上接口的地址login,參數跟url直接使用?相連,每個請求參數直接使用&相連。請求成功,則返回{'code': 200, 'message': '登錄成功'}。
新聞熱點
疑難解答