Routing
The following are the routes that BetterCRUD automatically generates. You can disable and rewrite them.
Default Routes¶
Route | Method | Description |
---|---|---|
/resource | GET | Get Many |
/resource/{id} | GET | Get One |
/resource | POST | Create One |
/resource/bulk | POST | Create Many |
/resource/{id} | PUT | Update One |
/resource/{ids}/bulk | PUT | Update Many |
/resource/{ids} | DELETE | Delete Many |
Disabling Routes¶
1. Globally disable¶
2. Disable in specific routes¶
@crud(
routes={
"exclude":["update_many","create_many"]
}
)
class PetController():
service: PetService = Depends(PetService)
Overriding Routes¶
Sometimes you want to rewrite some routes
from fastapi import APIRouter, Depends
from better_crud import crud
from .schema import PetCreate, PetUpdate, PetPublic
from .service import PetService
pet_router = APIRouter()
@crud(
pet_router,
dto={
"create": PetCreate,
"update": PetUpdate
},
serialize={
"base": PetPublic,
},
summary_vars={
"name": "cat"
}
)
class PetController():
service: PetService = Depends(PetService)
@pet_router.get("")
async def override_get_many(self):
return []
@pet_router.get('/{id}')
def override_get_one(self, id: int):
return 'return one'