congress.api.webservice module

class congress.api.webservice.AbstractApiHandler(path_regex)

Bases: object

Abstract handler for API requests.

Attributes:
path_regex: The regular expression matching paths supported by this

handler.

handle_request(request)

Handle a REST request.

Param

request: A webob request object.

Returns

A webob response object.

handles_request(request)

Return true iff handler supports the request.

class congress.api.webservice.CollectionHandler(path_regex, model, allow_named_create=True, allow_list=True, allow_create=True, allow_replace=False)

Bases: congress.api.webservice.AbstractApiHandler

API handler for REST collection resources.

REST collections represent collections of entities in the data model, and often support the following operations: - List elements in the collection - Create new element in the collection

The following less-common collection operations are NOT SUPPORTED: - Replace all elements in the collection - Delete all elements in the collection

create_member(request, id_=None)
handle_request(request)

Handle a REST request.

Param

request: A webob request object.

Returns

A webob response object.

list_members(request)
replace_members(request)
exception congress.api.webservice.DataModelException(error_code, description, data=None, http_status_code=<HTTPStatus.BAD_REQUEST: 400>)

Bases: Exception

Congress API Data Model Exception

Custom exception raised by API Data Model methods to communicate errors to the API framework.

classmethod create(error)

Generate a DataModelException from an existing CongressException.

Param

error: has a ‘name’ field corresponding to an error_codes error-name. It may also have a ‘data’ field.

Returns

a DataModelException properly populated.

rest_response()
class congress.api.webservice.ElementHandler(path_regex, model, collection_handler=None, allow_read=True, allow_actions=True, allow_replace=True, allow_update=True, allow_delete=True)

Bases: congress.api.webservice.AbstractApiHandler

API handler for REST element resources.

REST elements represent individual entities in the data model, and often support the following operations: - Read a representation of the element - Update (replace) the entire element with a new version - Update (patch) parts of the element with new values - Delete the element

Elements may also exhibit ‘controller’ semantics for RPC-style method invocation, however this is not currently supported.

action(request)
delete(request)
handle_request(request)

Handle a REST request.

Param

request: A webob request object.

Returns

A webob response object.

read(request)
replace(request)
update(request)
class congress.api.webservice.SimpleDataModel(model_name)

Bases: object

A container providing access to a single type of data.

add_item(item, params, id_=None, context=None)

Add item to model.

Param

item: The item to add to the model

Param

params: A dict-like object containing parameters from the request query string and body.

Param

The ID of the item, or None if an ID should be generated

Param

context: Key-values providing frame of reference of request

Returns

Tuple of (ID, newly_created_item)

Raises
delete_item(id_, params, context=None)

Remove item from model.

Param

id_: The ID of the item to be removed

Param

params: A dict-like object containing parameters from the request query string and body.

Param

context: Key-values providing frame of reference of request

Returns

The removed item.

Raises

KeyError – Item with specified id_ not present.

get_item(id_, params, context=None)

Retrieve item with id id_ from model.

Param

id_: The ID of the item to retrieve

Param

params: A dict-like object containing parameters from the request query string and body.

Param

context: Key-values providing frame of reference of request

Returns

The matching item or None if item with id_ does not exist.

get_items(params, context=None)

Get items in model.

Param

params: A dict-like object containing parameters from the request query string and body.

Param

context: Key-values providing frame of reference of request

Returns

A dict containing at least a ‘results’ key whose value is a list of items in the model. Additional keys set in the dict will also be rendered for the user.

replace_item(id_, item, params, context=None)

Replace item with id_ with new data.

Param

id_: The ID of the item to be replaced item: The new item

Param

params: A dict-like object containing parameters from the request query string and body.

Param

context: Key-values providing frame of reference of request

Returns

The new item after replacement.

Raises
  • KeyError – Item with specified id_ not present.

  • DataModelException – Replacement cannot be performed.

replace_items(items, params, context=None)

Replace items in the model.

Param

items: A dict-like object containing new data

Param

params: A dict-like object containing parameters

Param

context: Key-values providing frame of reference of request

Returns

None

update_item(id_, item, params, context=None)

Update item with id_ with new data.

Param

id_: The ID of the item to be updated item: The new item

Param

params: A dict-like object containing parameters from the request query string and body.

Param

context: Key-values providing frame of reference of request

Returns

The updated item.

Raises
  • KeyError – Item with specified id_ not present.

  • DataModelException – Update cannot be performed.

congress.api.webservice.error_response(status, error_code, description, data=None)

Construct and return an error response.

Args:

status: The HTTP status code of the response. error_code: The application-specific error code. description: Friendly G11N-enabled string corresponding to error_code. data: Additional data (not G11N-enabled) for the API consumer.

congress.api.webservice.original_msg(e)

Undo oslo-messaging added traceback to return original exception msg