美文网首页思科ACIAndroid开发程序员
基于Django设计的Restful MockServer

基于Django设计的Restful MockServer

作者: Android开发哥 | 来源:发表于2017-03-06 10:05 被阅读312次

工具在Github上面:https://github.com/August1996/mockserver

MockServer

前言

某公司的某个开发小组人员分配如下:

人员 工作
小A 前端
小B Android
小C IOS
小D 后台

出于维护性和兼容性等的考虑.三端(前端,Android,IOS)决定使用restful的方式去设计三端的接口.

随着开发的进行,小A 小B 小C陆续编写接口给后台.因为后台忙不过来,所以接口不能按时提交.

这时小A,小B,小C的工作也就阻塞了,这样就造成三端过度依赖后台.接入数据和测试的工作就一天拖一天.

于是项目的整体进度开始延长...

既然我们已经知道接口是怎么样的了,那么为什么我们不自己弄一台服务器,专门来返回对应接口的数据呢?

MockServer就是为了解决这一尴尬的局面.字面意思很浅显易懂,就是模拟数据的服务器.

本项目基于PythonDjango框架开发.

依赖的python包:
* django 框架
* django-suit 主题

数据库:sqlite

安装

Linux

安装Python

Linux下自带Python环境,所以就不需要再配置Python环境了
只需要安装依赖包

安装PIP

pip是python的包管理工具

  • 下载get-pip
  • 运行get-pip,脚本会自动安装
sudo python get-pip.py

安装依赖包

主要是安装前言提到的两个包

sudo pip install django django-suit
安装Sqlite3

Debian系的安装方法

sudo apt-get install sqlite3

项目克隆

克隆本项目到本地

git clone https://github.com/August1996/mockserver

启动项目

进入项目工作目录并且启动服务器

cd mockserver
python manage.py runserver 0.0.0.0:8080

如果启动成功,会返回下面响应

Performing system checks...

System check identified no issues (0 silenced).
February 11, 2017 - 06:08:22
Django version 1.8.6, using settings 'mockserver.settings'
Starting development server at http://192.168.0.102:8080/
Quit the server with CONTROL-C.

使用

管理页面

地址

如果服务器地址为http://192.168.0.102:8080/
那么请打开http://192.168.0.102:8080/admin

登录界面登录界面

登录

默认登录信息:

admin
mockserver
管理界面管理界面

添加接口

API组成

一个接口由三部分组成

名称 意义
API 代表一个服务器
Router 代表一个接口
Response 代表一种返回结果
例子

假如现在我们有一个test项目那么我们添加API:

服务器名称:  测试
服务器根路径: test
添加API添加API

假如test项目有个register的接口,我们添加Router:

路由名称:       注册
路由路径:       register
路由服务器:  测试
添加Router添加Router

假如test项目的register接口有两种返回结果,返回时延迟1秒(模拟网络慢),我们添加Response

响应名称:       注册失败
Json:
{
    "status_code": 300,
    "message": "注册失败",
    "objs": {
        "user_token": "XXXXX"
    }
}
响应延迟:       1
响应路由:       测试->注册
响应名称:       注册成功
Json:
{
    "status_code": 200,
    "message": "注册成功",
    "objs": {
        "user_token": "XXXXX"
    }
}
响应延迟:       1
响应路由:       测试->注册
添加Response添加Response

访问

最后我们访问http://192.168.0.102:8080/test/register这个地址,MockServer就会随机返回上面的一种结果

结果返回结果返回

参考

具体参考Python以及Django框架的用法.

相关文章

网友评论

  • 望月成三人:前端自己用mock不行吗
    Android开发哥:@望月成三人 方法有很多种,在客户端开发过程中提出一点自己的拙见
  • 小鱼游儿:给你提一点建议哈,python字符串判断空 util.isTextEmpty(api) or util.isTextEmpty(router):修改成if not api or not router 就行。变量名和方法名,不要用驼峰式,apiList等修改成api_list。一看你就是java程序员 哈哈
    Android开发哥:@小鱼游儿 谢谢提醒,因为本身做客户端开发的习惯
    小鱼游儿:集合size也可以这么判断为0,if not router_list
  • taoza:请问: 您用的Python , version is ? 2 or 3? Thanks
    taoza:@August1996 谢谢。
    Android开发哥:@天下独绝 用的是2.7,其实主要是Django框架
  • ldldlkdldld:不错,学习一下
    Android开发哥:@周永强 谢谢支持:heart:

本文标题:基于Django设计的Restful MockServer

本文链接:https://www.haomeiwen.com/subject/aeiowttx.html