最近需要对访问第三方服务的接口做一些mock,我们访问第三方的接口是在配置文件进行配置的,很方便替换,所以直接就打算起一个简单的django服务
请路过大佬不经意的提点!谢谢
思路:
1. 找一个开源的django框架(直接其它的都不需研究了,因为测试比较少搞这些。另外其实可以找最简单的demo,我只是顺手)
2. 添加接口,并做处理
3. 接口参数写入数据库中, 可方便定义返回内容
(注:我使用的是开源项目automagic 作者ray)
(注意这边演示的前提就是找了一个对应的基本可用的demo项目哦,之后只需要做少量编辑)
添加接口的过程:
1. 找到需要启动的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()