sandman ------- **sandman** "makes things REST". Have an existing database you'd like to expose via a REST API? Normally, you'd have to write a ton of boilerplate code for the ORM you're using. We're programmers. We don't write boilerplate. Simple Setup ```````````` .. code:: python from sandman import app, db app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///chinook' from sandman.model import register, Model class Artist(Model): __tablename__ = 'Artist' class Album(Model): __tablename__ = 'Album' class Playlist(Model): __tablename__ = 'Playlist' register((Artist, Album, Playlist)) Let's start our new API server and make a request. .. code:: bash $ python & * Running on $ curl GET http://localhost:5000/artists Here is the JSON returned: .. code:: json { "ArtistId": 273, "Name": "C. Monteverdi, Nigel Rogers - Chiaroscuro; London Baroque; London Cornett & Sackbu", "links": [ { "rel": "self", "uri": "/artists/ArtistId" } ] }, { "ArtistId": 274, "Name": "Nash Ensemble", "links": [ { "rel": "self", "uri": "/artists/ArtistId" } ] }, { "ArtistId": 275, "Name": "Philip Glass Ensemble", "links": [ { "rel": "self", "uri": "/artists/ArtistId" } ] } ] Batteries Included `````````````````` With **sandman**, (almost) zero boilerplate code is required. Your existing database structure and schema is introspected and your database tables magically get a RESTful API. For each table, Sandman creates: - proper endpoints - support for a configurable set of HTTP verbs - GET - POST - PATCH - DELETE - responses with appropriate ``rel`` links automatically - essentially a HATEOAS-based service sitting in front of your database *Warning: Sandman is still very much a work in progress.* It is not suitable for use **anywhere.** Don't use it for anything important. It's also often changing in backwards incompatible ways. Links ````` * `website <>`_ * `documentation <>`_


Project Slug


Last Built

5 years, 4 months ago passed


Home Page



api, hateoas, magic, orm, python, rest, sqlalchemy

Short URLs

Default Version


'latest' Version