Skip to content

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.

โญ Star Historyยค

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