Skip to main content

This tool has the capability to automatically generate API endpoints based on the provided data model or database schema, encompassing operations such as creation, retrieval, updating, and deletion (CRUD). By doing so, it alleviates the burden on developers to manually write and configure these API endpoints, thus enhancing development efficiency. Furthermore, it can generate Swagger documentation, facilitating API debugging.

Project description

piYkvUU.png

📦 Faab - Flask Auto API Builder

license stars forks forks

项目简介

"Flask Auto API Builder" 是一个基于 Flask 框架的自动 API 构建工具。

本工具可以根据给定的数据模型或数据库模式自动生成 API 端点,包括创建、读取、更新和删除(CRUD)操作。它们可以减少开发人员手动编写和配置 API 端点的工作量,提高开发效率。同时可以生成Swagger文档,便于API调试。此外,Faab还提供了常见的Web工具,如用户鉴权、上传下载等功能,进一步增强了开发者的体验。

功能特性

  • 用户身份验证:通过用户名和密码进行用户身份验证,确保只有授权用户可以访问受保护的功能。
  • 创建资源:允许用户创建新的资源,例如创建新的文章、任务或事件等。
  • 读取资源:提供对已存在资源的读取访问权限,例如获取文章的详细信息或查看任务列表。
  • 更新资源:允许用户对现有资源进行更新,例如编辑文章内容或修改任务状态。
  • 删除资源:允许用户删除不再需要的资源,例如删除文章、任务或事件等。
  • 搜索功能:提供基于关键字的搜索功能,使用户能够快速找到所需的资源。
  • 分页和排序:支持对资源列表进行分页和排序,以便用户可以方便地浏览和管理大量数据。
  • 文件上传和下载:允许用户上传文件到服务器,并提供下载已上传的文件的功能。
  • 数据验证:对用户输入的数据进行验证,确保数据的完整性和一致性。
  • 错误处理:提供友好的错误提示和处理机制,使用户能够轻松识别和解决问题。
  • 访问控制:基于用户角色和权限,限制用户对敏感资源和功能的访问权限。
  • 日志记录:记录关键操作和事件,以便进行故障排查和审计。
  • API 文档生成:自动生成 API 文档,使开发人员和用户能够了解可用的 API 端点和参数。

技术栈与依赖项

  • Flask
  • SQLAlchemy
  • flasgger
  • Flask-JWT
  • Flask-CORS
  • Redis
  • PyMySQL

快速开始

  1. 创建app.py

  2. 创建factory.py、blueprints(根据开发项目自定)

    可直接使用Faab提供的demo进行开发

  3. 安装Faab:

    pip install Faab
    
  4. 项目中引入

    from Faab import Faab
    
    from Faab.FaabJWT import jwt_authentication
    from blueprints.test import test_bp
    from blueprints.test.model import Users, TabNavMenu
    import factory as fac 
    
  5. 配置数据库连接

    class DBConfig(object):
        # DB及Flask基础配置
        user = 'faab'
        host = 'localhost'
        password = 'faab'
        SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://%s:%s@%s:3306/%s' % (user, password, host, 'faab')
        SQLALCHEMY_BINDS = {
            'test': 'mysql+pymysql://%s:%s@%s:3306/%s' % (user, password, host, 'test')
        }
        SECRET_KEY = 'session_key'
    
  6. 配置AutoAPI Model与蓝图

    models = [
        [
            {
                "model": your_model,
                "bp": your_blueprints,
                "url_prefix": "your_url_prefix"
            }
        ]
    ]
    
    app = Faab(__name__)
    app.add_models(models)
    app.add_db_config(DBConfig)
    fac.register(app) #可选
    
  7. 配置启动参数

    if __name__ == '__main__':
        app.run(debug=True, port=5000, host='0.0.0.0')
    
  8. 运行

    python app.py
    
  9. 在浏览器中访问Swagger文档:

    http://localhost:5000/apidocs
    

Faab开发文档

详细的文档将在正式版更新。

开源不易, 有了您的赞助, 我们会做的更好~

许可证

本项目采用 GNU 通用公共许可证(GNU General Public License,简称 GPL)进行许可。这意味着您有权使用、复制、修改和分发本项目的源代码和衍生作品,但需要遵守以下条件:

  1. 版权声明:您需要在您的衍生作品中包含原始项目的版权声明和许可证信息。

  2. 开放源代码:如果您对本项目进行修改或扩展,并将其作为衍生作品分发,您需要以相同的许可证(GPL)分发您的修改和源代码。

  3. 无保证:该项目没有任何明示或暗示的保证。作者不对项目的适用性、可靠性或准确性提供任何保证,亦不承担任何责任。您自担风险使用本项目。

  4. 贡献:如果您对本项目进行贡献,您同意将您的贡献授予原始项目的所有者,并同意您的贡献将在原始项目的 GPL 许可下分发。

有关完整的许可证文本,请参阅项目根目录中的 LICENSE 文件。

技术反馈与交流群

  • 加入交流群交流
  • 获取Faab开发教程文章
  • 与作者进行相关交流

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Faab-0.1.9.tar.gz (30.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page