需求描述
YApi开放Api参考
假设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
SDK(Software development kit) 软件开发包,是软件或平台面向开发者的一种快速开发工具或套件,使开发者可以更方便、灵活的使用软件或平台功能。
一般(比较注重生态的)软件或平台会提供不同语言或平台或框架的包,来适用不同的开发者。例如Selenium就提供了Python、Nodejs、Java等各种软件的SDK,这也是其比较流行的原因之一。sdk的使用方式可以自己设计,最好简单易用
参考常见平台Python版本sdk使用方式:
- jira
- python-jenkins
- python-gitlib
YApi安装参考
Windows部署YApi
- 安装mongodb 默认安装(安装较慢)- 安装包见群文件
- 安装node 14 默认安装 – 安装包见群文件
- 打开命令行执行
npm install -g yapi-cli --registry https://registry.npm.taobao.org
- 安装完 命令行运行
yapi server
- 打开 http://localhost:9090/ 选一个版本(我选的1.12),填一个 企业名称,其他不变-点击部署(等待部署完 忽略node-gyp错误)
- 打开命令行cd 进入用户目录下的 my-yapi目录,运行
node vendors/server/app.js
- 访问 http://localhost:3000 点击登录 默认用户名admin@admin.com / ymfe.org
MacOS部署YApi
- 安装node 14 :
brew install node@14
(如果已安装其他版本需要brew link --overwrite --force node@1
4)或安装nvm来管理多版本node
2. 安装mongodb
sudo chown -R "$USER":admin /usr/local
brew tap mongodb/brew
brew install mongodb-community
- 安装yapi-cli
npm install -g yapi-cli --registry https://registry.npm.taobao.org
- 安装完 命令行运行
yapi server
- 打开 http://localhost:9090/ 选一个版本(我选的1.12),填一个 企业名称,其他不变-点击部署(等待部署完 忽略node-gyp错误)
- 打开命令行cd 进入用户目录下的 my-yapi目录,运行 node vendors/server/app.js
- 访问 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
根据命令行提示、输入项目基本信息,并选择即可。
示例如下:
python3 -m cookiecutter https://github.com/audreyr/cookiecutter-pypackage
You've downloaded /Users/superhin/.cookiecutters/cookiecutter-pypackage before. Is it okay to delete and re-download it? [yes]: yes
full_name [Audrey Roy Greenfeld]: Han Zhichao
email [audreyr@example.com]: superhin@126.com
github_username [audreyr]: hanzhichao
project_name [Python Boilerplate]: python-yapi
project_slug [python_yapi]:
project_short_description [Python Boilerplate contains all the boilerplate you need to create a Python package.]: YApi python sdk
pypi_username [hanzhichao]:
version [0.1.0]:
use_pytest [n]: y
use_black [n]: y
use_pypi_deployment_with_travis [y]:
add_pyup_badge [n]: y
Select command_line_interface:
1 - Click
2 - Argparse
3 - No command-line interface
Choose from 1, 2, 3 [1]: 2
create_author_file [y]: y
Select open_source_license:
1 - MIT license
2 - BSD license
3 - ISC license
4 - Apache Software License 2.0
5 - GNU General Public License v3
6 - Not open source
Choose from 1, 2, 3, 4, 5, 6 [1]: 1
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net