API Star tools to create CRUD resources.
Project description
API Star CRUD
- Version: :Version: 0.3.0
- Status: Production/Stable
- Author: José Antonio Perdiguero López
Features
Supported ORM:
- SQLAlchemy through apistar-sqlalchemy.
- Peewee through apistar-peewee-orm.
The resources are classes with a default implementation for methods:
create
: Create a new element for this resource.retrieve
: Retrieve an element of this resource.update
: Update (partially or fully) an element of this resource.delete
: Delete an element of this resource.list
: List resource collection.drop
: Drop resource collection.
The routes for these methods are:
Method | Verb | URL |
---|---|---|
create | POST | / |
retrieve | GET | /{element_id}/ |
update | PUT | /{element_id}/ |
delete | DELETE | /{element_id}/ |
list | GET | / |
drop | DELETE | / |
Quick start
Install API star CRUD:
pip install apistar-crud
Follow the steps:
- Create an input type and output type for your resource:
- Define a model based on your ORM.
- Build your resource using the metaclass specific for your ORM.
- Add the routes for your resource.
SQLAlchemy
Example of a fully functional resource based on SQLAlchemy.
Create an input type and output type:
class PuppyInputType(types.Type):
name = validators.String()
class PuppyOutputType(types.Type):
id = validators.Integer()
name = validators.String()
Define a model:
class PuppyModel(Base):
__tablename__ = "Puppy"
id = Column(Integer, primary_key=True)
name = Column(String)
The resource:
from apistar_crud.sqlalchemy import Resource
class PuppyResource(metaclass=Resource):
model = PuppyModel
input_type = PuppyInputType
output_type = PuppyOutputType
methods = ("create", "retrieve", "update", "delete", "list", "drop")
The resource generates his own routes:
from apistar import Include
routes = [
Include("/puppy", "Puppy", PuppyResource.routes),
]
Peewee
Example of a fully functional resource based on Peewee.
Create an input type and output type:
class PuppyInputType(types.Type):
name = validators.String()
class PuppyOutputType(types.Type):
id = validators.Integer()
name = validators.String()
Define a model:
class PuppyModel(peewee.Model):
name = peewee.CharField()
The resource:
from apistar_crud.peewee import Resource
class PuppyResource(metaclass=Resource):
model = PuppyModel
input_type = PuppyInputType
output_type = PuppyOutputType
methods = ("create", "retrieve", "update", "delete", "list", "drop")
The resource generates his own routes:
from apistar import Include
routes = [
Include("/puppy", "Puppy", PuppyResource.routes),
]
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
apistar-crud-0.3.0.tar.gz
(16.4 kB
view hashes)
Built Distribution
Close
Hashes for apistar_crud-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cf34eb3df5da80c005880108eafec6b2a474134cf40ec121fadba0782cdf638 |
|
MD5 | e716a3fe8a60c2b5a21c8147517916d8 |
|
BLAKE2b-256 | de8b49649192328fe4e842591fe0dafc4e9d4f6d36fbd25bbaecc9f9a59b7489 |