Error 405 on POST method FastAPI
Есть небольшой учебный проект - сайт на FastAPI для укорачивания ссылок, запускается на uvicorn. В нём есть функция, она принимает длинный url, который отправляет пользователь, и возвращает короткую версию.
@app.post("/")
async def get_url_web(long_url: str) -> Dict[str, str]:
url = await shorten(URL(long=long_url))
return {"short_url": url.short}
Когда посылаю запрос, летит ошибка 405:
[2024-04-05 20:41:12,630] #INFO h11_impl.py: 477 - uvicorn.access - 127.0.0.1:52144 - "POST /?long_url=https%3A%2F%2Fexample.com HTTP/1.1" 405
Как исправить? Помогите плиз
Ответы (1 шт):
Автор решения: NTA
→ Ссылка
405 Method Not Allowed — указанный клиентом метод нельзя применить к текущему ресурсу
У вас стоит метод post
, но вероятно вы открываете ссылку через браузер, который отправляет только get
запросы. Для исправления либо смените метод в коде с post
на get
, либо отправляйте запрос через curl
, или напишите скрипт на python
который отправляет post
запросы:
from requests import post
print(post('http://127.0.0.1:8000/?long_url=https%3A%2F%2Fexample.com').json())
#{'short_url': '###'}