Metadata-Version: 2.1
Name: muffin-rest
Version: 4.2.6
Summary: the package provides enhanced support for writing REST APIs with Muffin_.
Home-page: https://github.com/klen/muffin-rest
Author: Kirill Klenov
Author-email: horneds@gmail.com
License: MIT
Project-URL: Documentation, https://github.com/klen/muffin-rest
Project-URL: Source code, https://github.com/klen/muffin-rest
Project-URL: Issue tracker, https://github.com/klen/muffin-rest/issues
Keywords: rest,api,muffin,asgi,asyncio,trio
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Framework :: AsyncIO
Classifier: Framework :: Trio
Requires-Python: >=3.7
Provides-Extra: tests
Provides-Extra: yaml
Provides-Extra: build
Provides-Extra: example
Provides-Extra: peewee
Provides-Extra: sqlalchemy
License-File: LICENSE

Muffin-REST
###########

.. _description:

**Muffin-REST** -- provides enhanced support for writing REST APIs with Muffin_.


.. _badges:

.. image:: https://github.com/klen/muffin-rest/workflows/tests/badge.svg
    :target: https://github.com/klen/muffin-rest/actions
    :alt: Tests Status

.. image:: https://img.shields.io/pypi/v/muffin-rest
    :target: https://pypi.org/project/muffin-rest/
    :alt: PYPI Version

.. image:: https://img.shields.io/pypi/pyversions/muffin-rest
    :target: https://pypi.org/project/muffin-rest/
    :alt: Python Versions

----------

.. _features:

Features
--------

- API class to simplify the creation of REST APIs;
- Automatic filtering and sorting for resources;
- Support for `Peewee ORM`_, Mongo_, `SQLAlchemy Core`_;
- Auto documentation with Swagger_;

.. _contents:

.. contents::

.. _requirements:

Requirements
=============

- python >= 3.7

.. note:: Trio is only supported with Peewee ORM

.. _installation:

Installation
=============

**Muffin-REST** should be installed using pip: ::

    pip install muffin-rest

With `SQLAlchemy Core`_ support: ::

    pip install muffin-rest[sqlalchemy]

With `Peewee ORM`_ support: ::

    pip install muffin-rest[peewee]

With YAML support for autodocumentation: ::

    pip install muffin-rest[yaml]

.. _usage:

Usage
=====

Create an API:

.. code-block:: python

   from muffin_rest import API

   api = API()

Create endpoints and connect them to the API (example for sqlalchemy):

.. code-block:: python

   from muffin_rest.sqlalchemy import SAEndpoint
   from project.api import api

   @api.route
   class MyEndpoint(SAEndpoint):

        class Meta:
            table = MyTable
            database = db

Connect it to your Muffin_ application:

.. code-block:: python

   from project.api import api

   api.setup(app, prefix='/api/v1')


.. _bugtracker:

Bug tracker
===========

If you have any suggestions, bug reports or
annoyances please report them to the issue tracker
at https://github.com/klen/muffin-rest/issues

.. _contributing:

Contributing
============

Development of Muffin-REST happens at: https://github.com/klen/muffin-rest


Contributors
=============

* klen_ (Kirill Klenov)

.. _license:

License
========

Licensed under a `MIT license`_.

.. _links:

.. _klen: https://github.com/klen
.. _Muffin: https://github.com/klen/muffin
.. _Swagger: https://swagger.io/tools/swagger-ui/
.. _Mongo: https://www.mongodb.com/
.. _Peewee ORM: http://docs.peewee-orm.com/en/latest/
.. _SqlAlchemy Core: https://docs.sqlalchemy.org/en/14/core/

.. _MIT license: http://opensource.org/licenses/MIT
