{"id":13936396,"url":"https://github.com/mikeywaites/flask-arrested","last_synced_at":"2025-04-14T20:30:35.833Z","repository":{"id":25282712,"uuid":"28708480","full_name":"mikeywaites/flask-arrested","owner":"mikeywaites","description":"Flask-Arrested: A Framework For Rapidly Building REST APIs with Flask.","archived":false,"fork":false,"pushed_at":"2019-11-09T16:13:38.000Z","size":274,"stargazers_count":39,"open_issues_count":4,"forks_count":5,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-14T10:50:32.501Z","etag":null,"topics":["flask","flask-api","flask-sqlalchemy","marshalling","python","rest-api","serialization"],"latest_commit_sha":null,"homepage":"https://arrested.readthedocs.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mikeywaites.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-02T09:04:35.000Z","updated_at":"2023-09-25T00:44:32.000Z","dependencies_parsed_at":"2022-08-27T21:23:49.601Z","dependency_job_id":null,"html_url":"https://github.com/mikeywaites/flask-arrested","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikeywaites%2Fflask-arrested","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikeywaites%2Fflask-arrested/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikeywaites%2Fflask-arrested/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikeywaites%2Fflask-arrested/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mikeywaites","download_url":"https://codeload.github.com/mikeywaites/flask-arrested/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248955280,"owners_count":21189032,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flask","flask-api","flask-sqlalchemy","marshalling","python","rest-api","serialization"],"created_at":"2024-08-07T23:02:37.770Z","updated_at":"2025-04-14T20:30:35.528Z","avatar_url":"https://github.com/mikeywaites.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"Flask-Arrested: A Framework For Rapidly Building REST APIs with Flask.\n=======================================================================\n\n.. image:: https://img.shields.io/pypi/v/arrested.svg\n    :target: https://pypi.python.org/pypi/arrested\n\n.. image:: https://img.shields.io/pypi/l/arrested.svg\n    :target: https://pypi.python.org/pypi/arrested\n\n.. image:: https://img.shields.io/pypi/pyversions/arrested.svg\n    :target: https://pypi.python.org/pypi/arrested\n\n.. image:: https://circleci.com/gh/mikeywaites/flask-arrested/tree/master.svg?style=svg\n    :target: https://circleci.com/gh/mikeywaites/flask-arrested/tree/master\n\n.. image:: https://img.shields.io/readthedocs/arrested/latest.svg\n    :target: http://arrested.readthedocs.io/en/latest/\n\n.. image:: https://coveralls.io/repos/github/mikeywaites/flask-arrested/badge.svg?branch=master\n    :target: https://coveralls.io/github/mikeywaites/flask-arrested?branch=master\n\n.. image:: https://badges.gitter.im/bruv-io/Arrested.png\n    :target: https://gitter.im/bruv-io/Arrested\n\n-------------------\n\nIntroducing Arrested\n---------------------\n\nTake the pain out of REST API creation with Arrested - batteries included for quick wins, highly extensible for specialist requirements.\n\n.. code-block:: python\n\n    from arrested import ArrestedAPI, Resource, Endpoint, GetListMixin, CreateMixin,\n    from example.models import db, Character\n\n    api_v1 = ArrestedAPI(url_prefix='/v1')\n\n    characters_resource = Resource('characters', __name__, url_prefix='/characters')\n\n\n    class CharactersIndexEndpoint(Endpoint, GetListMixin, CreateMixin):\n\n        name = 'list'\n        many = True\n\n        def get_objects(self):\n\n            characters = db.session.query(Character).all()\n            return characters\n\n        def save_object(self, obj):\n\n            character = Character(**obj)\n            db.session.add(character)\n            db.session.commit()\n            return character\n\n\n    characters_resource.add_endpoint(CharactersIndexEndpoint)\n    api_v1.register_resource(characters_resource)\n\n\nFlask-Arrested Features\n-----------------------------\n\nArrested is a framework for rapidly building REST API's with Flask.\n\n- Un-Opinionated: Let's you decide \"the best way\" to implement *your* REST API.\n- Battle Tested: In use across many services in a production environment.\n- Batteries Included! Arrested ships with built in support for popular libraries such as SQLAlchemy, Kim and Marshmallow.  Using something different or have your own tooling you need to support?  Arrested provides a rich API that can be easily customised!\n- Supports any storage backends:  Want to use \"hot new database technology X?\" No problem!  Arrested can be easily extended to handle all your data needs.\n- Powerful middleware system - Inject logic at any step of the request/response cycle\n\n\n🚀 Get started in under a minute..\n-----------------------------------------\n\n.. raw:: html\n\n    \u003cscript type=\"text/javascript\" src=\"https://asciinema.org/a/UbBr97GeGlLNMTT64HNvjF3Ql.js\" id=\"asciicast-UbBr97GeGlLNMTT64HNvjF3Ql\" async data-autoplay=\"true\" data-size=\"small\" data-rows=20\u003e\u003c/script\u003e\n\nUse the Flask-Arrested cookie cutter to create a basic API to get you started in 4 simple commands. `\u003chttps://github.com/mikeywaites/arrested-cookiecutter\u003e`_.\n\n\n.. code-block:: shell\n\n    $ cookiecutter gh:mikeywaites/arrested-cookiecutter\n    $ cd arrested-users-api\n    $ docker-compose up -d api\n    $ curl -u admin:secret localhost:8080/v1/users | python -m json.tool\n\n----------------\n\nThe User Guide\n--------------\n\nGet started with Flask-Arrested using the quickstart user guide or take a look at the in-depth API documentation.\n\n`\u003chttps://arrested.readthedocs.org\u003e`_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikeywaites%2Fflask-arrested","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmikeywaites%2Fflask-arrested","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikeywaites%2Fflask-arrested/lists"}