HTTP Methods¶
on_request accepts only safe methods:GET, HEAD, OPTIONS by default. There are 2 ways to allow unsafe methods.
Define on_{method}¶
This example shows how to define allowed methods in a view class. You can use on_request to do common processes.
@api.route("/new-user")
class User:
    async def on_request(self, req, resp):
        # called before any methods.
        pass
    async def on_get(self, req, resp):
        # process only `GET` method.
        pass
    async def on_post(self, req, resp):
        # process only `POST` method.
        pass
Set allowed_methods¶
Another way is to set allowed_methods in a view class.
@api.route("/new-comment")
class Comment:
    allowed_methods = ["post"]
    async def on_request(self, req, resp):
        # able to response against `POST`!
        pass
    async def on_delete(self, req, resp):
        # `on_{method}` is also available.
        pass
This example allows safe methods and some unsafe methods(POST, DELETE) . Other unsafe requests like PUT will get 405 Method Not Allowed .