Атрибут method
Атрибут method принадлежит классу Request и хранит HTTP-метод текущего запроса в виде строки верхнего регистра: 'GET', 'POST', 'PUT', 'DELETE' и так далее. Атрибут доступен внутри обработчика через объект запроса и не принимает параметров.
Синтаксис
request.method
Пример
Давайте получим HTTP-метод запроса и вернём его в ответе:
from fastapi import FastAPI, Request
app = FastAPI()
@app.get('/')
async def index(request: Request):
return {'method': request.method}
Результат выполнения кода для GET-запроса:
{"method": "GET"}
Пример
Давайте повесим один обработчик на несколько методов и вернём разные ответы в зависимости от значения атрибута method:
from fastapi import FastAPI, Request
app = FastAPI()
@app.api_route('/user', methods=['GET', 'POST'])
async def user(request: Request):
if request.method == 'GET':
return {'action': 'read'}
return {'action': 'create'}
Результат выполнения кода для POST-запроса:
{"action": "create"}
Пример
Давайте проверим метод запроса и вернём сообщение об ошибке, если он не равен 'DELETE':
from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse
app = FastAPI()
@app.delete('/article')
async def article(request: Request):
if request.method != 'DELETE':
return JSONResponse(
status_code=405,
content={'error': 'method not allowed'}
)
return {'status': 'deleted'}
Результат выполнения кода для DELETE-запроса:
{"status": "deleted"}
Смотрите также
-
класс
Request,
который представляет HTTP-запрос -
атрибут
url,
который содержит URL текущего запроса -
атрибут
headers,
который содержит заголовки текущего запроса -
атрибут
query_params,
который содержит query-параметры текущего запроса