sandman API¶
exception Module¶
Exception specifications for Sandman
model Module¶
The model module is repsonsible exposes the sandman.model.Model class,
from which user models should derive. It also makes the register()
function available, which maps endpoints to their associated classes.
-
sandman.model.register(cls, use_admin=True)[source]¶ Register with the API a
sandman.model.Modelclass and associated endpoint.Parameters: cls ( sandman.model.Modelor tuple) – User-defined class derived fromsandman.model.Modelto be registered with the endpoint returned byendpoint()
-
sandman.model.activate(admin=True, browser=True, name='admin', reflect_all=False)[source]¶ Activate each pre-registered model or generate the model classes and (possibly) register them for the admin.
Parameters: - admin (bool) – should we generate the admin interface?
- browser (bool) – should we open the browser for the user?
- name – name to use for blueprint created by the admin interface. Set this to avoid naming conflicts with other blueprints (if trying to use sandman to connect to multiple databases simultaneously)
The Model class is meant to be the base class for user Models. It represents a table in the database that should be modeled as a resource.
-
class
sandman.model.models.AdminModelViewWithPK(model, session, name=None, category=None, endpoint=None, url=None)[source]¶ Bases:
flask_admin.contrib.sqla.view.ModelViewMixin admin view class that displays primary keys on the admin form
-
_default_view= 'index_view'¶
-
_urls= [('/action/', 'action_view', ('POST',)), ('/ajax/lookup/', 'ajax_lookup', ('GET',)), ('/new/', 'create_view', ('GET', 'POST')), ('/delete/', 'delete_view', ('POST',)), ('/edit/', 'edit_view', ('GET', 'POST')), ('/', 'index_view', ('GET',))]¶
-
action_view(*args, **kwargs)¶ Mass-model action view.
-
ajax_lookup(*args, **kwargs)¶
-
column_display_pk= True¶
-
create_view(*args, **kwargs)¶ Create model view
-
delete_view(*args, **kwargs)¶ Delete model view. Only POST method is allowed.
-
edit_view(*args, **kwargs)¶ Edit model view
-
index_view(*args, **kwargs)¶ List view
-
-
class
sandman.model.models.Model[source]¶ Bases:
objectA mixin class containing the majority of the RESTful API functionality.
sandman.model.Modelis the base class of :class:`sandman.Model, from which user models are derived.-
__endpoint__= None¶ override
__endpoint__if you wish to configure thesandman.model.Model’s endpoint.Default: __tablename__ in lowercase and pluralized
-
__methods__= ('GET', 'POST', 'PATCH', 'DELETE', 'PUT')¶ override
__methods__if you wish to change the HTTP methods thissandman.model.Modelsupports.Default:
('GET', 'POST', 'PATCH', 'DELETE', 'PUT')
-
__table__= None¶ Will be populated by SQLAlchemy with the table’s meta-information.
-
__tablename__= None¶ The name of the database table this class should be mapped to
Default: None
-
as_dict(depth=0)[source]¶ Return a dictionary containing only the attributes which map to an instance’s database columns.
Parameters: depth (int) – Maximum depth to recurse subobjects Return type: dict
-
from_dict(dictionary)[source]¶ Set a set of attributes which correspond to the
sandman.model.Model’s columns.Parameters: dictionary (dict) – A dictionary of attributes to set on the instance whose keys are the column names of the sandman.model.Model’s underlying database table.
-
classmethod
meta()[source]¶ Return a dictionary containing meta-information about the given resource.
-
replace(dictionary)[source]¶ Set all attributes which correspond to the
sandman.model.Model’s columns to the values in dictionary, inserting None if an attribute’s value is not specified.Parameters: dictionary (dict) – A dictionary of attributes to set on the instance whose keys are the column names of the sandman.model.Model’s underlying database table.
-
sandman Module¶
Sandman REST API creator for Flask and SQLAlchemy
-
sandman.sandman.attribute_response(resource, name, value)[source]¶ Return a response for the resource of the appropriate content type.
Parameters: resource ( sandman.model.Model) – resource to be returned in requestReturn type: flask.Response
-
sandman.sandman.collection_response(cls, resources, start=None, stop=None)[source]¶ Return a response for the resources of the appropriate content type.
Parameters: resources – resources to be returned in request Return type: flask.Response
-
sandman.sandman.delete_resource(collection, key)[source]¶ Return the appropriate Response for deleting an existing resource in collection.
Parameters: - collection (string) – a
sandman.model.Modelendpoint - key (string) – the primary key for the
sandman.model.Model
Return type: flask.Response- collection (string) – a
-
sandman.sandman.endpoint_class(collection)[source]¶ Return the
sandman.model.Modelassociated with the endpoint collection.Parameters: collection (string) – a sandman.model.ModelendpointReturn type: sandman.model.Model
-
sandman.sandman.get_collection(*args, **kwargs)[source]¶ Return the appropriate Response for retrieving a collection of resources.
Parameters: - collection (string) – a
sandman.model.Modelendpoint - key (string) – the primary key for the
sandman.model.Model
Return type: flask.Response- collection (string) – a
-
sandman.sandman.get_meta(*args, **kwargs)[source]¶ Return the meta-description of a given resource.
Parameters: collection – The collection to get meta-info for
-
sandman.sandman.get_resource(*args, **kwargs)[source]¶ Return the appropriate Response for retrieving a single resource.
Parameters: - collection (string) – a
sandman.model.Modelendpoint - key (string) – the primary key for the
sandman.model.Model
Return type: flask.Response- collection (string) – a
-
sandman.sandman.get_resource_attribute(*args, **kwargs)[source]¶ Return the appropriate Response for retrieving an attribute of a single resource.
Parameters: - collection (string) – a
sandman.model.Modelendpoint - key (string) – the primary key for the
sandman.model.Model
Return type: flask.Response- collection (string) – a
-
sandman.sandman.get_resource_data(incoming_request)[source]¶ Return the data from the incoming request based on the Content-type.
-
sandman.sandman.handle_exception(error)[source]¶ Return a response with the appropriate status code, message, and content type when an
InvalidAPIUsageexception is raised.
-
sandman.sandman.index(*args, **kwargs)[source]¶ Return information about each type of resource and how it can be accessed.
-
sandman.sandman.no_content_response(*args, **kwargs)[source]¶ Return the appropriate Response with status code 204, signaling a completed action which does not require data in the response body
Return type: flask.Response
-
sandman.sandman.patch_resource(collection, key)[source]¶ “Upsert” a resource identified by the given key and return the appropriate Response.
If no resource currently exists at /<collection>/<key>, create it with key as its primary key and return a
resource_created_response().If a resource does exist at /<collection>/<key>, update it with the data sent in the request and return a
no_content_response().Note: HTTP PATCH (and, thus,
patch_resource()) is idempotentParameters: - collection (string) – a
sandman.model.Modelendpoint - key (string) – the primary key for the
sandman.model.Model
Return type: flask.Response- collection (string) – a
-
sandman.sandman.post_resource(collection)[source]¶ Return the appropriate Response based on adding a new resource to collection.
Parameters: collection (string) – a sandman.model.ModelendpointReturn type: flask.Response
-
sandman.sandman.put_resource(collection, key)[source]¶ Replace the resource identified by the given key and return the appropriate response.
Parameters: collection (string) – a sandman.model.ModelendpointReturn type: flask.Response
-
sandman.sandman.resource_created_response(resource)[source]¶ Return HTTP response with status code 201, signaling a created resource
Parameters: resource ( sandman.model.Model) – resource created as a result of current requestReturn type: flask.Response
-
sandman.sandman.resource_response(resource, depth=0)[source]¶ Return a response for the resource of the appropriate content type.
Parameters: resource ( sandman.model.Model) – resource to be returned in requestReturn type: flask.Response
-
sandman.sandman.retrieve_collection(collection, query_arguments=None)[source]¶ Return the resources in collection, possibly filtered by a series of values to use in a ‘where’ clause search.
Parameters: - collection (string) – a
sandman.model.Modelendpoint - query_arguments (dict) – a list of filter query arguments
Return type: class:sandman.model.Model
- collection (string) – a