Django 15. Пишем API - Добавление пользователя
Теперь давайте напишем API, обращаясь к которому мы будем создавать или обновлять пользователя.
Дополнительные материалы
Для скачивания материалов необходимо войти или зарегистрироваться
Файлы также можно получить в Telegram-боте по коду: 786103
Реклама
Метод POST-запроса.
Откроем файл api.py
и создадим класс CreateBotUser
и статический метод post
.
В прошлый раз мы делали метод для GET
запроса, в этот раз наш бот не получает, а передаёт данные по API, именно по этому нам нужен POST
запрос.
class CreateBotUser(APIView):
@staticmethod
def post(request):
Создание объекта пользователя.
Далее создаём переменную usr_obj
в которую мы, с помощью метода get_or_create
получим объект пользователя, если пользователь с chat_id
уже есть в базе, если же его нет, он будет создан и так же помещен в переменную:
usr_obj: models.BotUserModel = models.BotUserModel.objects.get_or_create(
chat_id=request.data['chat_id'],
defaults={
'first_name': request.data['first_name'],
'last_name': request.data['last_name'],
'username': request.data['username'],
})[0]
В параметре defaults
передаются значения полей, которые будут записаны, если пользователя нет.
Затем, независимо от того, был пользователь только что создан или нет, мы обновляем значение поля updated
на актуальное время, вызвав сохранение объекта. И возвращаем пустой ответ со статус-кодом 200
:
usr_obj.save()
return Response(status=200)
Маршрут для API.
Добавим URL-адрес для отправки запроса. Перейдём в файл urls.py
и в список urlpatterns
отведённый для URL-паттернов нашего API добавим строку:
# Паттерны API
urlpatterns += [
path('bot/get-file/', api.GetFilePath.as_view()),
path('bot/create-user/', api.CreateBotUser.as_view()),
]
На этом создание API закончено, теперь необходимо написать в боте отправку запроса при выполнении команды.
Все статьи