fasteve

A simple and feature complete REST API framework designed for speed


Keywords
api, fastapi, framework, mongodb, pyeve, python, rest, rest-api
License
BSD-3-Clause-Clear
Install
pip install fasteve==0.2.3

Documentation

fasteve logo

PyPi testing coverage docs image black

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