Skip to content

Flask-RESTX-marshmallow is an extension for Flask and Flask-RESTX, which is a successful practice combining flask_restx with marshmallow.

License

Notifications You must be signed in to change notification settings

1746104160/flask-restx-marshmallow

Repository files navigation

Flask-RESTX-marshmallow

PyPI version Python version License

Flask-RESTX-marshmallow is a powerful extension that seamlessly combines Flask, Flask-RESTX, and Marshmallow to provide a robust foundation for building RESTful APIs with automatic documentation and data validation.

✨ Features

  • 🚀 Seamless Integration: Combines Flask-RESTX's API documentation with Marshmallow's powerful serialization
  • 📋 Automatic Documentation: Generate interactive Swagger/OpenAPI documentation automatically
  • 🔍 Data Validation: Built-in request/response validation using Marshmallow schemas
  • 🎯 Type Safety: Full type hint support for better development experience
  • 🔧 Easy Configuration: Minimal setup required to get started
  • 📦 SQLAlchemy Integration: Works perfectly with Flask-SQLAlchemy

🔧 Requirements

  • Python 3.12+
  • Flask 3.1+
  • Flask-RESTX 1.3+
  • Marshmallow 4.0+

📦 Installation

Install the extension with pip:

pip install flask-restx-marshmallow

or with poetry:

poetry add flask-restx-marshmallow

or with uv

uv add flask-restx-marshmallow

🚀 Quick Start

Complete Example

For a comprehensive example with SQLAlchemy integration, see app.py. This example demonstrates:

  • RESTful API endpoints with full CRUD operations
  • Automatic request/response validation
  • Interactive Swagger documentation
  • Database integration with Flask-SQLAlchemy
  • Error handling and status codes

The example application provides these endpoints:

Endpoint Method Description
/tasks/ GET Query all tasks with optional filtering
/tasks/ POST Create a new task
/tasks/<id> GET Retrieve a specific task by ID
/tasks/<id> PATCH Update a task partially
/tasks/<id> DELETE Delete a task by ID

🏃‍♂️ Running the Example

  1. Clone the repository:

    git clone https://github.com/1746104160/flask-restx-marshmallow.git && cd flask-restx-marshmallow
    
  2. Install dependencies:

    poetry install --with dev
    

    or

    uv sync --dev
    
  3. Run the example application:

    python app.py
    

    or

    flask run
    
  4. Visit http://localhost:5000 to explore the interactive API documentation.

📚 Documentation

Visit the interactive API documentation when running your application to explore all available endpoints and schemas. The documentation is automatically generated from your code and provides:

  • Interactive API testing: Try out endpoints directly from the browser
  • Schema visualization: See request/response models with examples
  • Parameter documentation: Understand required and optional parameters
  • Error responses: Learn about possible error scenarios

🧪 Testing

Run the test suite:

pytest

📄 License

This project is licensed under the MIT License.

🔗 Links

⭐ Star History

If you find this project useful, please consider giving it a star on GitHub!

About

Flask-RESTX-marshmallow is an extension for Flask and Flask-RESTX, which is a successful practice combining flask_restx with marshmallow.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published