什么是JSON?
一种轻量级的数据交换格式。它独立于语言和平台,JSON解析器和JSON库支持不同的编程语言。JSON具有自我描述性,很容易理解。
数据格式:
{"name":python",age":5}
接口最常见的数据格式就是JSON,现在我们来实践一下如何开发JSON格式的API接口
from flask importFlask,request,jsonify
app= Flask(__name__)
@app.route(/api/sub/",methods=[POST])defsub():if not request.json: #如果请求数据类型非json
return jsonify({code": 100001msg请求类型错误data: None})not a" in request.json or bin request.json: 如果参数中没有a或者没有b
100002参数缺失: None})
a= request.json.get()
b= request.json.get()
result= str(float(a) - float(b)) 使用float支持浮点数相减
100000成功": result}) 使用jsonify将字典数据转换为json类型的相应数据
if __name__ == '__main__':
app.run(port=5005)
运行此接口
使用测试工具测试接口
这里需要注意的是此API需要传递的参数必须为JSON格式,否则会报类型错误,原因是JSON格式必须通过headers指定请求内容类型为json,Content-Type: application/json
添加headers后访问成功。
通过python代码测试上面的接口
必须通过headers指定内容类型为application/json: ```headers={"Content-Type":"application/json"}
请求数据要转化为字符串: data=json.dumps(data) (使用json.dumps需要import json)
json格式的响应数据,在接口调试通过和稳定的情况下可以使用response.json()解析为字典格式,进行断言
requestsjson
base_url= http://127.0.0.1:5005"
test_sub_normal():
url= base_url + headers= {Content-Typeapplication/json"} 1. 必须通过headers指定请求内容类型为json
data = {42}
data= json.dumps(data) 2. 序列化成字符串
response = requests.post(url=url,headers=headers,data=data)3. 响应解析 # 响应格式为: {"code":"100000","msg": "成功","data": "2.0"}
resp_code = response.json().get()
resp_msg= response.json().get()
resp_data= response.json().get()print(resp_code,resp_msg,resp_data)断言
assert response.status_code == 200
assert resp_code == "
assert resp_msg == assert resp_data == 2.0'
:
test_sub_normal()
运行程序:
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250