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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|