Integrates cassandra/cqlengine with ripozo to easily create cassandra backed Hypermedia/HATEOAS/REST apis
Project description
ripozo-cassandra
ripozo-cassandra is a ripozo-extension that provides a Manager that integrates cqlengine (and thereby Cassandra) with ripozo. It provides convience functions for generating resources. In particular it focues on creating shortcuts for CRUD+L type operations. It fully implements the BaseManager class that is provided in the ripozo package.
Example
This is the minimal example of creating ripozo managers with ripozo-cassandra and integrating them with a resource. As you can see in the example, there are only three functional lines of code.
from cqlengine.models import Model
from cqlengine import columns, connection
from cqlengine.management import create_keyspace, sync_table, delete_keyspace
from ripozo_cassandra import CQLManager
from uuid import uuid4
# Define your model
class Person(Model):
id = columns.UUID(primary_key=True, default=lambda:uuid4())
first_name = columns.Text()
last_name = columns.Text()
# Setup cqlengine and sync the person table
keyspace_name = 'mykeyspace'
connection.setup(['192.168.56.102'], keyspace_name)
create_keyspace(keyspace_name)
sync_table(Person)
# This is where you define your manager
class PersonManageR(CQLManager):
model = Person # Assign the cqlengin model to the manager
fields = ('id', 'first_name', 'last_name',) # Specify the fields to use for this manager
# This is the ripozo specific part.
# This creates a resource class that can be given
# to a dispatcher (e.g. the flask-ripozo package's FlaskDispatcher)
class PersonResource(ResourceBase):
manager = PersonManager
pks = ['id']
# A retrieval method that will operate on the '/api/person' route
# It retrieves the id, first_name, and last_name properties
@apimethod(methods=['GET'])
def get_person(cls, request):
properties = self.manager.retrieve(request.url_params)
return cls(properties=properties)
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 ripozo-cassandra-0.2.1.tar.gz
.
File metadata
- Download URL: ripozo-cassandra-0.2.1.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5dc30a29d5e6f995cee52250489ee060d62c006feeabab0fe1cb95371fcb68d |
|
MD5 | abebbfa7fdaadf60ac8e3165abeb8bca |
|
BLAKE2b-256 | 44f798d9357682dd7a7c6d04e71e37c11054eb12712ef6139d3999171f23f116 |