Basic REST API using Flask, Flask-RESTful, Flask-Marshmallow, and Flask-SQLAlchemy.
All endpoints return JSON formatted output.
All endpoints return the actual data encapsulated in the data
key, e.g.
{ "data":{ "id":2, "username":"guest", "email":"guest@example.com", "_links":{ [...] } } }
The /users
endpoint provides the User ressource.
HTTP Method | URI | Action |
---|---|---|
GET | /users | Retrieve list of users |
GET | /users/[id] | Retrieve a user |
POST | /users | Create a new user |
PUT | /users/[id] | Update an existing user |
DELETE | /users/[id] | Delete a user |
The /departments
endpoint provides the Department ressource.
HTTP Method | URI | Action |
---|---|---|
GET | /departments | Retrieve list of departments |
GET | /departments/[id] | Retrieve a department |
POST | /departments | Create a new department |
PUT | /departments/[id] | Update an existing department |
DELETE | /departments/[id] | Delete a department |
Users may have a relation to a Deparment (see app/models.py).
HTTP Method | URI | Action |
---|---|---|
GET | /departments/[id]/users | Retrieve a list of users for a department |
All endpoints that return a list of entities support pagination.
For controlling the pagination there are currently two paramters in place.
Both paramters can be passed as URL parameters (e.g. /users?limit=5&offset=2
).
limit
: Number of requested results per response/pageoffset
: Offset of requested results
Every endpoint which supports pagination is indicating this by returning some info about its size.
total
: Total number of entities within the ressource
{ "offset":2, "limit":5, "total":21, "data":[...] }