HTTP Methods
Defining operations
An operation
can be one of the following HTTP methods:
- GET
- POST
- PUT
- DELETE
- PATCH
Django Ninja comes with a decorator for each operation:
@api.get("/path")
def get_operation(request):
...
@api.post("/path")
def post_operation(request):
...
@api.put("/path")
def put_operation(request):
...
@api.delete("/path")
def delete_operation(request):
...
@api.patch("/path")
def patch_operation(request):
...
See the operations parameters reference docs for information on what you can pass to any of these decorators.
Handling multiple methods
If you need to handle multiple methods with a single function for a given path,
you can use the api_operation
decorator:
@api.api_operation(["POST", "PATCH"], "/path")
def mixed_operation(request):
...
This feature can also be used to implement other HTTP methods that don't have
corresponding Django Ninja methods, such as HEAD
or OPTIONS
.
@api.api_operation(["HEAD", "OPTIONS"], "/path")
def mixed_operation(request):
...