Есть сайт на котором необходимо обработать коллбэк. Так как я ни разу не делал этого, то прошу высказаться о правильности моих мыслей.
1. Коллбэк это обычный внешний запрос. То есть мне не важна природа этого запроса - его может инициировать как браузер клиента так и любой сторонний сервис
2. Коллбэк это только GET запрос или может быть и POST ?
3. для обработки я создаю отдельный адрес в url.py на котором висит обычная вьюха с входящим request. Далее этот request я разбираю на части в зависимости от структуры отдаваемых мне данных ?
4. Если 3 вопрос да, то что делать если на этот адрес какой то злоумышленник начнёт слать всякий мусор ?
5. Ответом мне нужно вернуть "ок". Тут я совсем непонял. Куда именно вернуть этот ок? Просто в конце вьюхи написать return HttpResponse('ок') ?
Думаю создавать повторно тему смысла нет, продолжу здесь.
Вот что я написал для обработка колбэка:
class CallBackPage(View):
def get(self, request):
with open(BASE_DIR / 'logs/callback.log', 'a', encoding='utf-8') as f:
f.write('callback log get' + '\n')
f.write(str(request.GET) + '\n')
return HttpResponse('ok')
def post(self, request):
with open(BASE_DIR / 'logs/callback.log', 'a', encoding='utf-8') as f:
f.write('callback log post' + '\n')
f.write(str(request.POST) + '\n')
return HttpResponse('ok')
т.е. на адрес прописанный в url.py жду запроса. Если я сам туда жму в браузере, то все срабатывает нормально. Обрабатывается GET запрос и текст запроса пишется в текстовый файл.
Когда я жду от стороннего сервиса запрос, который должен быть отправлен POST, то ничего не происходит. Что неправильно? Возможно я не понимаю каких то базовых фундаментальных вещей ?