Request
Django APIRouter provides fully compatible with Django Request class with additional properties and methods.
Request class
Additional method and properties:
.query_params -> QueryDict
- A dictionary-like HTTP GET parameters..form -> QueryDict
- A dictionary-like HTTP POST parameters..files -> MultiValueDict
- A dictionary-like object containing all uploaded files..cookies -> Dict[str, str]
- Returns dictionary-like cookies. Keys and values are strings..json(self) -> Any
- Parse JSON body or raiseapirouter.exceptions.APIException(400)
Custom request class
You can override request class globally or on route level.
- Set
APIROUTER_DEFAULT_REQUEST_CLASS=apirouter.request.Request
config - Set in router class
from apirouter import APIRouter, Request
class MyRequest(Request):
pass
router = APIRouter(request_class=MyRequest)
- Set in route
from apirouter import APIRouter, Request, Response
class MyRequest(Request):
pass
router = APIRouter()
@router.route("/", request_class=MyRequest)
def index(request: MyRequest):
return Response("OK")