Cat

Django 15. Пишем API - Добавление пользователя

Теперь давайте напишем API, обращаясь к которому мы будем создавать или обновлять пользователя. 

Все статьи

Icon Link

Дополнительные материалы

Icon Link

Реклама

Icon Link
Сайт на Django proDream 05 Сентябрь 2023 Просмотров: 726

Метод 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 закончено, теперь необходимо написать в боте отправку запроса при выполнении команды.

Автор

    Нет комментариев

    Реклама