A simple and feature complete REST API framework designed for speed
Project description
Fasteve is a rebuild of Eve using FastAPI as a base.
Fasteve is Simple
Create a file main.py
with:
from fasteve import Fasteve, MongoModel, Resource
class People(MongoModel):
name: str
people = Resource(model=People)
resources = [people]
app = Fasteve(resources=resources)
Start a database (mongodb default):
$ docker run --rm -p 27017:27017 mongo
Run the server with:
$ uvicorn main:app --reload
The API is now live, ready to be consumed:
$ curl -i http://localhost:8000/people
HTTP/1.1 200
...
{
"_data": [],
"_meta": {"max_results": 25, "total": 0, "page": 1},
"_links": {
"self": {"href": "/people", "title": "people"},
"parent": {"href": "/", "title": "home"},
},
}
Features (TODO)
- Powered by FastAPI ✅
- Emphasis on REST ✅
- Full range of CRUD operations ✅
- Customizable resource endpoints ✅
- Sub Resources ✅
- Pagination ✅
- HATEOAS ✅
- Bulk create ✅
- Data Validation ✅
- Extensible Data Validation ✅
- Unique Fields ✅
- CORS Cross-Origin Resource Sharing ✅
- Read-only by default ✅
- Default Values ✅
- Embedded Resource Serialization ✅
- Event Hooks ✅
- Custom ID Fields ✅
- Alternative ID Fields ✅
- Interactive API docs (provided by Swagger UI) ✅
- Alternative API docs (provided by ReDoc) ✅
- Repeated Background Tasks ✅
- MongoDB Support ✅
- SQL Support ✅
- Predefined Database Filters
- Projections
- JSONP
- Customizable, multiple item endpoints
- Filtering and Sorting
- JSON and XML Rendering
- Conditional Requests
- Data Integrity and Concurrency Control
- Resource-level Cache Control
- API Versioning
- Document Versioning
- Authentication
- Rate Limiting
- File Storage
- GeoJSON
- Internal Resources
- Enhanced Logging
- Operations Log
- MongoDB Aggregation Framework
License
Fasteve is a open source project,
distributed under the BSD license
Latest Changes
- :sparkles: add SQL support via sqlmodel. PR #21 by @Wytamma.
- :tada: v0.1.3. PR #20 by @Wytamma.
- :sparkles: Add event hooks. PR #17 by @Wytamma.
- :sparkles: break up endpoints. PR #16 by @Wytamma.
- :sparkles: Add PATCH method. PR #15 by @Wytamma.
- :bug: PUT does upsert when ID not found. PR #14 by @Wytamma.
- :art: PUT returns 204 (No Content). PR #13 by @Wytamma.
- :sparkles: Add PUT method. PR #12 by @Wytamma.
- :art: Formatting with Black. PR #11 by @Wytamma.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fasteve-0.2.3.tar.gz
(21.9 kB
view details)
Built Distribution
fasteve-0.2.3-py3-none-any.whl
(29.2 kB
view details)
File details
Details for the file fasteve-0.2.3.tar.gz
.
File metadata
- Download URL: fasteve-0.2.3.tar.gz
- Upload date:
- Size: 21.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.8.2 Linux/5.13.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 210b72871920245e20c0bc6725bee341f4e14775cd411309ea82cbf904d30c19 |
|
MD5 | 30431ef0a88a4a82c805f0b6c99f9d47 |
|
BLAKE2b-256 | 7960713211ff68105a463dc15c8707681eab07550fc4df99094fc42f3dfcb6b5 |
File details
Details for the file fasteve-0.2.3-py3-none-any.whl
.
File metadata
- Download URL: fasteve-0.2.3-py3-none-any.whl
- Upload date:
- Size: 29.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.8.2 Linux/5.13.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c61b7afac3a2f0f0109339a09c6079df45b414aaeb0d219e59177952cc31069b |
|
MD5 | 67aca5bc91287a9c9c69bd43b07bcffd |
|
BLAKE2b-256 | a60521c85f884bc1442ef93f23c86479cb47f1fb6ab3f3b7cef546986aa4aff9 |