WebAPI-Postman测试后端的相关问题
1.要注意逻辑关系,并且检查数据库现有的数据
在测试的时候,登录以及删除球员、查找球员我发现不成功,先开始以为是代码出了问题,但其实只是我数据库没有注册了的User账户以及密码或者是没有球员信息,由此数据库根本就不存在相关数据,也就无法进行正常的操作,并且要着重检查外键的问题.
2.检查传输数据的类型是否对应
检查传输数据的类型是否对应,int类型的数据是不能打引号的,string类型需要打引号,如果没有对应,返回的JSON数据组也是会显示失败的。并且每个属性名都应该加引号,之后也不是等号,而是冒号,要确保传输数据的类型以及格式正确,否则都会不成功。
正确的传入格式:
{
"PlayerNumber":7,
"PlayerName":"测试",
"LocationId":5,
"PlayerHeight":175,
"PlayerWeight":100,
"PlayerAge":23,
"address":"伦敦",
"UserId":1
}
以及变量的大小写也应该跟定义的一致,否则会报错!
3.对应接口里的不同的传入参数,我们使用postman进行测试的时候,输入的数据格式以及方式也会不同
像本系统中的DeletePlayer接口以及SearchPlayer接口中传入的参数是int playernumber,传入的只是一条数据,对于这种情况,向后端传入一条数据的时候,是不支持JSON格式的,因为不能转为数据组。
而且get和delete方法只支持这种在url后面增加?xxxx=xx方式进行操作:
127.0.0.1:5000/player/delete?playernumber=2
127.0.0.1:5000/player/search?playernumber=7
但是post不一样,post不仅能支持上诉的方式,还可以支持x-www-form-urlencoded的方式,去输入key和Value即可。
EditPlayer接口以及AddPlayer接口传入的参数是[FromBody] PlayerDomestic player对象,player对象有多个属性,所以向后端传输数据的时候,JSON能将其转为数据组,我们也就可以采用熟悉的Body-raw-JSON的方式进行传输,此时的传入格式为:
{
"PlayerNumber":7,
"PlayerName":"测试",
"LocationId":5,
"PlayerHeight":175,
"PlayerWeight":100,
"PlayerAge":23,
"address":"伦敦",
"UserId":1
}