flasgger手写phpwind接口文档

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

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提供了大量能使我们快速便捷地处理数据的函数和方法。

flasgger介绍
flasgger文档
flasgger源码
swagger官网

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值