Automated REST APIs for existing database-driven systems
Project description
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
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))
app.run()
Let’s start our new API server and make a request.
$ python runserver.py &
* Running on http://127.0.0.1:5000/
$ curl GET http://localhost:5000/artists
Here is the JSON returned:
{
"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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file sandman-0.2.2b.tar.gz
.
File metadata
- Download URL: sandman-0.2.2b.tar.gz
- Upload date:
- Size: 6.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b851410d8f8e4d8fbb126ae2862b97075515439a13f087ffc3ee5cb1123167a |
|
MD5 | c4af31e8f4b185a5f77c736d323385eb |
|
BLAKE2b-256 | f3fd770c94e1389d32ecba9df64fb2ae248b15263a4088ff89f128444908a856 |