什么是AutoLine开源平台
AutoLine开源平台是一个开源自动化测试解决方案,基于RobotFramework进行二次开发,支持RobotFramework几乎所有的库。
源码地址
github地址: https://github.com/small99/AutoLine
码 云 地 址:https://gitee.com/lym51/AutoLine
下图为AutoLine所有的restful API的定义及实现
restful API主要实现以下功能:
- 产品管理
- 项目管理
- 对象、套件、用例、变量、步骤管理
- 调度及任务管理
- 用户管理
等等
如何实现restful API?
在autoline开源平台中我们采用了blueprint来统计管理路由,使用flask-restful插件来实现restful API
具体实现步骤如下:
1. 注册api blueprint,在app下的__init__.py可以看到以下代码片段
from .api import api_bp as api_blueprint
app.register_blueprint(api_blueprint, url_prefix='/api/v1')
2. 在api下的__init__.py可以看到以下代码片段,来实现restful API资源添加
# 导入blueprint及restful
from flask import Blueprint
from flask_restful import Api
# 构建blueprint及restful Api对象
api_bp = Blueprint('api', __name__)
api = Api(api_bp)
# 添加认证restful api资源
from .auth import Auth
api.add_resource(Auth, "/auth/")
# 添加产品管理restful api资源
from .product import Product
api.add_resource(Product, "/product/")
3. 我们看下产品管理的restful api的具体实现代码,在api/product.py中,下面的代码已经去掉了具体的实现,以便大家更清楚的理解代码实现骨架:
# -*- coding: utf-8 -*-
__author__ = "苦叶子"
"""
公众号: 开源优测
Email: lymking@foxmail.com
"""
from datetime import datetime
from flask_restful import Resource, reqparse
from flask_login import current_user
from ..models import AutoProduct, User
from .. import db
# 继承Resource
class Product(Resource):
def __init__(self):
# 定义从前端传入服务端要转换参数
self.parser = reqparse.RequestParser()
self.parser.add_argument('name', type=str)
self.parser.add_argument('desc', type=str)
self.parser.add_argument('tags', type=str)
self.parser.add_argument('enable', type=bool, default=True)
self.parser.add_argument('id', type=int, default=-1)
self.parser.add_argument('method', type=str)
self.parser.add_argument('page', type=int, default=1)
self.parser.add_argument('rows', type=int, default=15)
# get方法的实现
def get(self):
args = self.parser.parse_args()
pass
return data
# post方法的实现
# 通过参数method的值来实现增删改查动作
# 目的是避免再去实现put、delete等方法,统一由post方法实现
def post(self):
args = self.parser.parse_args()
method = args["method"].lower()
if method == "create":
return self.__create(args), 201
elif method == "edit":
return self.__edit(args), 201
elif method == "delete":
return self.__delete(args), 201
elif method == "query":
return self.__query(args), 201
return {"status": "fail", "msg": "方法: %s 不支持" % method}, 201
# 实现创建动作,即新增
def __create(self, args):
pass
# 实现查询
def __query(self, args):
pass
# 实现编辑
def __edit(self, args):
pass
# 实现删除
def __delete(self, args):
pass
总结
在flask中实现restful api是一件很简单的事,需要flask-restful插件即可,但对于新手来讲可能还是有些难度,因为要去学习和理解系列的基础知识,在这里给推荐学python flask 开发教程
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net