Skip to content

long2ice/fastapi-rest

Repository files navigation

fastapi-rest

image image image image

Introduction

Fast restful API based on FastAPI and TortoiseORM.

Install

pip install fastapi-rest

Quick Start

First, define your ListView resource.

from fastapi_rest.resource import ListView


class UserList(ListView):
    model = User
    fields = ("name", "age")

Second, include router to your app.

app.include_router(UserList.as_router())

Now, you can visit the endpoint /user to get user list.

ListView

Export the endpoint GET /{resource}.

class ListView(Resource):
    paginator: Paginator = Paginator()
    fields: Optional[Tuple[str, ...]] = None
    exclude: Optional[Tuple[str, ...]] = None
    queryset: Optional[QuerySet] = None
    query: Optional[Type[BaseModel]] = None

DetailView

Export the endpoint GET /{resource}/{pk}.

class DetailView(Resource):
    fields: Optional[Tuple[str, ...]] = None
    exclude: Optional[Tuple[str, ...]] = None

CreateView

Export the endpoint POST /{resource}.

class CreateView(Resource):
    schema: Optional[Type[BaseModel]] = None

UpdateView

Export the endpoint PUT /{resource}/{pk}.

class UpdateView(Resource):
    schema: Type[BaseModel]

DeleteView

Export the endpoint DELETE /{resource}/{pk}.

class DeleteView(Resource):
    pass

Reference

You can see the examples here.

License

This project is licensed under the Apache2.0 License.