最近需要对访问第三方服务的接口做一些mock,我们访问第三方的接口是在配置文件进行配置的,很方便替换,所以直接就打算起一个简单的django服务
交流学习加v:
(非机构,行业变迁,同类好友多一个,多一些可能性,想要机构可以推荐...)
请路过大佬不经意的提点!谢谢
思路:
1. 找一个开源的django框架(直接其它的都不需研究了,因为测试比较少搞这些。另外其实可以找最简单的demo,我只是顺手)
2. 添加接口,并做处理
3. 接口参数写入数据库中, 可方便定义返回内容
(注:我使用的是开源项目automagic 作者ray)
(注意这边演示的前提就是找了一个对应的基本可用的demo项目哦,之后只需要做少量编辑)
添加接口的过程:
- 找到需要启动的manage.py文件,找到配置文件路径
2.找到主url的路径
3.找到想要添加接口的子节点
4. 在对应的urls.py文件中,添加你需要的接口
5.接下来,来定义这个接口的返回,在对应的views.py文件中,定义处理该接口的方法咯
6. 最后附上本次要mock的接口公共方法(“项目的源码”请添加wei v:ct-xiaozhou,行业变迁,愿多个可能性)
说明:没有使用django的数据处理方式,直接使用mysql处理方法了
def commonDeel_99shou(request, apiname):
mysqla = TestMysqlDB()
apiinfo = mysqla.getOneData(f"SELECT returnStatus FROM test_work.mock_api_info where apiname='{apiname}'")
apireturnMsg = mysqla.getOneData(
f"SELECT returnMsg FROM test_work.mock_api_return where apiname='{apiname}' and apiStatus='{apiinfo[0]}'")
mysqla.close()
tempstr = apireturnMsg[0]
tempstr = reStrCommonDeel(tempstr)
print(type(tempstr))
if request.method == 'POST':
# result = {"result": 0, "msg": "执行成功"}
# return HttpResponse(json.dumps(result))
try:
json.loads(tempstr)
except Exception as e:
return JsonResponse({"result": -2, "msg": "参数格式错误,检查是否json格式"})
return HttpResponse(tempstr)
else:
return JsonResponse({"result": -1, "msg": "请求方式不对"})
附上mysql处理(数据表是自己搭建的数据库,使用工具界面添加的,非常简单。。。(有sql啊,但是本人懒啊。。)):
class TestMysqlDB:
test_host = '10.255.00.00'
test_port = 3306
test_user = 'root'
test_password = '123456'
test_db = 'test_work'
def init(self, db=None):
self.conn = pymysql.connect(host=self.test_host,
port=self.test_port,
user=self.test_user,
password=self.test_password,
db=self.test_db,
charset='utf8'
)
# 使用cursor()方法获取操作游标
self.cursor = self.conn.cursor()
def getOneData(self, sqlstr):
# 返回一条数据
self.cursor.execute(sqlstr)
return self.cursor.fetchone()
def close(self):
self.cursor.close()
self.conn.close()