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.
- 🚀 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
- Python 3.12+
- Flask 3.1+
- Flask-RESTX 1.3+
- Marshmallow 4.0+
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
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 |
-
Clone the repository:
git clone https://github.com/1746104160/flask-restx-marshmallow.git && cd flask-restx-marshmallow
-
Install dependencies:
poetry install --with dev
or
uv sync --dev
-
Run the example application:
python app.py
or
flask run
-
Visit
http://localhost:5000
to explore the interactive API 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
Run the test suite:
pytest
This project is licensed under the MIT License.
- GitHub Repository
- PyPI Package
- Flask Documentation
- Flask-RESTX Documentation
- Marshmallow Documentation
If you find this project useful, please consider giving it a star on GitHub!