当前位置:网站首页>flasgger手写phpwind接口文档
flasgger手写phpwind接口文档
2022-08-02 03:35:00 【不言之教】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
Flask是一个使用 Python 编写的轻量级 Web 应用框架。
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
提示:以下是本篇文章正文内容,下面案例可供参考
一、flasgger是什么?
在flask框架中使用的swagger即为flasgger,flasgger是flask支持的swagger UI,便于调试使用flask框架搭建的web api接口
二、使用步骤
1.引入库
代码如下(示例):
pip install flasgger
2.创建app
代码如下(示例):
import json
from flask import Flask, request, Response
from flasgger import swag_from, Swagger
def create_app():
app = Flask(__name__, instance_relative_config=True)
app_config = {}
app.config.from_mapping(app_config)
app.config['SWAGGER'] = {
'title': 'phpwind论坛',
'openapi': '1.0.1'
}
Swagger(app, template={
'title': 'Swagger Callbacks',
'openapi': '3.0.3',
"components": {
"securitySchemes": {
"BearerAuth": {
"in": "header",
"scheme": "bearer",
"type": "http",
"bearerFormat": "JWT"
}
}
}
})
return app
app = create_app()
@app.route('/phpwind/index.php', methods=['GET'])
@swag_from('./query_index.yml')
def index(language):
json_data = request.json
language = language.lower().strip()
features = [
"awesome", "great", "dynamic",
"simple", "powerful", "amazing",
"perfect", "beauty", "lovely"
]
size = int(request.args.get('size', 1))
if language in ['php', 'vb', 'visualbasic', 'actionscript']:
return "An error occurred, invalid language for awesomeness", 500
return Response(json.dumps({
"language": json_data,
'feature': features
}), mimetype='application/json')
@app.route('/phpwind/index.php?m=u&c=register&a=dorun', methods=['POST'])
@swag_from('./dorun.yml')
def dorun(language):
json_data = request.json
language = language.lower().strip()
features = [
"awesome", "great", "dynamic",
"simple", "powerful", "amazing",
"perfect", "beauty", "lovely"
]
size = int(request.args.get('size', 1))
if language in ['php', 'vb', 'visualbasic', 'actionscript']:
return "An error occurred, invalid language for awesomeness", 500
return Response(json.dumps({
"language": json_data,
'feature': features
}), mimetype='application/json')
@app.route('/phpwind/index.php?c=post&a=doadd&_json=1&fid=2', methods=['POST'])
@swag_from('./post_article.yml')
def post_atricle(language):
json_data = request.json
language = language.lower().strip()
features = [
"awesome", "great", "dynamic",
"simple", "powerful", "amazing",
"perfect", "beauty", "lovely"
]
size = int(request.args.get('size', 1))
if language in ['php', 'vb', 'visualbasic', 'actionscript']:
return "An error occurred, invalid language for awesomeness", 500
return Response(json.dumps({
"language": json_data,
'feature': features
}), mimetype='application/json')
app.run(port=8118, debug=True)
3.每个接口写yml文件
query_index.yml
查询首页的信息
---
tags:
- 首页
responses:
200:
description: 首页测试
content:
raw/html:
schema:
example: <!doctype html><html><head><meta charset="UTF-8" /><title>本站新帖 - phpwind 9.0 - Powered by phpwind</title>
dorun.yml
用户注册
---
tags:
- 注册
requestBody:
description: body
required: true
content:
x-www-form-urlencoded:
schema:
example: {"username":TOKEN,"password":PASSWORD,"repassword":PASSWORD,"email":EMAIL,"csrf_token":TOKEN}
responses:
200:
description: index test
content:
raw/html:
schema:
example: <!doctype html><html><head><meta charset="UTF-8" /><title>phpwind 9.0 - Powered by phpwind</title>
结果预览
总结
以上就是今天要讲的内容,本文仅仅简单介绍了flasgger的使用,而flasgger提供了大量能使我们快速便捷地处理数据的函数和方法。
边栏推荐
猜你喜欢
随机推荐
怎样写测试用例?
Comparison between Boda Industrial Cloud and Alibaba Cloud
网络 7 层架构
Pylon CLI 低成本的本地环境管控工具应用实例
对周期内时间段是否重叠进行校验
IDEA2021.2安装与配置(持续更新)
倒排单词
【LeetCode】链表相加 进位
【网络基础】浏览器输入一个URL之后,都发生了什么(详细讲解)
音视频文件的码率与大小计算
设置图片纵横比
Gartner 权威预测未来4年网络安全的8大发展趋势
h264转flv
unity学习(一):自动化创建模板脚本
rtsp转flv
408-二叉树-先序中序后序层次遍历
JVM机制
Flame sensor connected with Arduino
【LeetCode】Sum
The slave I/O thread stops because master and slave have equal MySQL server ids