案例6-YApi Python SDK开发

发布时间 2023-06-26 21:21:28作者: 韩志超

需求描述

什么是SDK
SDK(Software development kit) 软件开发包,是软件或平台面向开发者的一种快速开发工具或套件,使开发者可以更方便、灵活的使用软件或平台功能。
一般(比较注重生态的)软件或平台会提供不同语言或平台或框架的包,来适用不同的开发者。例如Selenium就提供了Python、Nodejs、Java等各种软件的SDK,这也是其比较流行的原因之一。

假设YApi是你公司产品,或你们自动化需要经常与YApi平台进行交互,需要你开发一款Python库,并封装一下YApi平台的常用操作,如创建项目、新建接口、接口分类、添加用户、添加测试集合等等。例如
安装你的库后

pip install python-yapi

可以使用以下方式来操作YApi平台

from python_yapi import YApi

yapi = YApi(base_url='http://localhost:3000')
yapi.login('admin@admin.com', 'ylmf.org')
print('项目列表', yapi.projects())

# 添加项目
project = yapi.add_project(group_id=11, .....)

# ....

sdk的使用方式可以自己设计,最好简单易用
参考常见平台Python版本sdk使用方式:

YApi安装参考

Windows部署YApi

  1. 安装mongodb 默认安装(安装较慢)- 安装包见群文件
  2. 安装node 14 默认安装 - 安装包见群文件
  3. 打开命令行执行
npm install -g yapi-cli --registry https://registry.npm.taobao.org
  1. 安装完 命令行运行
yapi server
  1. 打开 http://localhost:9090/ 选一个版本(我选的1.12),填一个 企业名称,其他不变-点击部署(等待部署完 忽略node-gyp错误)
  2. 打开命令行cd 进入用户目录下的 my-yapi目录,运行
node vendors/server/app.js
  1. 访问 http://localhost:3000 点击登录 默认用户名admin@admin.com / ymfe.org

MacOS部署YApi

  1. 安装node 14 :
brew install node@14

(如果已安装其他版本需要brew link --overwrite --force node@14)或安装nvm来管理多版本node
2. 安装mongodb

sudo chown -R "$USER":admin /usr/local 
brew tap mongodb/brew 
brew install mongodb-community
  1. 安装yapi-cli
npm install -g yapi-cli --registry https://registry.npm.taobao.org
  1. 安装完 命令行运行
yapi server
  1. 打开 http://localhost:9090/ 选一个版本(我选的1.12),填一个 企业名称,其他不变-点击部署(等待部署完 忽略node-gyp错误)
  2. 打开命令行cd 进入用户目录下的 my-yapi目录,运行 node vendors/server/app.js
  3. 访问 http://localhost:3000 点击登录 默认用户名admin@admin.com / ymfe.org

提示

  • 可以通过浏览器抓包不同操作接口并结合requests封装接口来实现不同操作
  • YApi提供了两套接口,一是基于Cookie/Session授权机制的平台操作,另外是单个项目的基于token的开放api,这里可以只用第一种。
  • 可以基于requests.Session()来封装并保留登录后的会话,已使得其他操作(带授权)可以正常进行

参考依赖库

  • requests

主要练习点

  • 授权处理及业务接口封装
  • 软件打包及发布

项目结构

  • 可以使用cookiecutter通过模板生成Python项目结构
    安装cookiecutter
python3 -m pip install cookiecutter

使用模板创建Python项目

python3 -m cookiecutter https://github.com/audreyr/cookiecutter-pypackage

根据命令行提示、输入项目基本信息,并选择即可。