Архив за Март, 2022

Сериализаторы в Django

С этого урока вы начнёте писать REST API на основе Django REST framework (DRF). В общем виде задача для RESTful API выглядит так: в БД проекта есть данные, и мы хотим управлять ими посредством запросов; архитектура API должна базироваться на принципах REST. Самый простой API должен реализовать как минимум шесть типичных действий для выбранных моделей: […]

Инструментарий для тестирования API

В процессе работы вы уже отправляли запросы к серверам — из браузера, если в ответ ожидалась HTML-страница, или из кода посредством библиотеки requests (когда ответ сервера надо было обработать в коде). Для отправки запросов есть и специальные программы, заточенные под работу с API. Такие программы можно условно разделить на консольные (такие как curl и httpie), встраиваемые (плагины для браузера или […]

REST API: Проектирование

Проектирование API — важная часть разработки и хорошая инвестиция в успешный результат. Соблюдение принципов проектирования поможет сделать API современным и удобным в работе. Начнём с принципов консистентности и расширяемости. Консистентность Консистентность — это согласованность данных друг с другом, их целостность и внутренняя непротиворечивость. Например, данные о каком-то объекте, полученные с одного эндпоинта, не должны отличаться от данных о том […]

Отправка чат-бота Telegram на сервер Heroku

При выключении вашего компьютера бот станет недоступен. Хорошо бы переселить его на какой-то компьютер, который никогда не спит. Можно приобрести мини-компьютер, например популярный Raspberry PI, воткнуть его в розетку, подключить к домашнему интернету и поселить бота внутри него. Но если у вас дома отключат электричество или интернет, то возникнет проблема. Есть ещё один вариант — […]

Логирование в Python

В переводе с английского log — это «журнал». Логирование — это ведение «бортового журнала», автоматическая запись событий в специальный файл или вывод таких записей в терминал. Логи — это дополнительная система мониторинга, и разработчик может настроить логирование в тех местах, за которыми нужно присматривать. Зачастую для отладки кода и вывода служебных сообщений применяют print(), но логи позволяют делать то же […]

Обработка исключений в Python

При работе с сетевыми ресурсами велика вероятность сбоев: на отправленный запрос не вернулся ответ, упал сервер, отвалился интернет, электричество кончилось, да мало ли что ещё может случиться. Любой из таких сбоев может вызвать ошибку в выполнении программы. Обработка различного рода ошибок — обязательная часть любого проекта. Ошибки при выполнении кода возникают не только в проектах, […]

Библиотека python-telegram-bot

Для работы с Bot API есть четыре популярные Python-библиотеки: python-telegram-bot, pyTelegramBotAPI, AIOGram, Telethon. Поработаем с python-telegram-bot. Это популярная библиотека с удобным интерфейсом: методы классов совпадают с названиями методов Bot API. В python-telegram-bot все методы Bot API вызываются как методы различных классов библиотеки. Библиотека разделена на три пакета: telegram — основной пакет, содержит все методы Bot API, перенесённые на Python. telegram.ext — вспомогательный пакет, он содержит методы-обёртки […]

Бот в Telegram

Чат-боты в мессенджерах Бот — это сокращение от слова «робот». Чат-ботами называют программы, взаимодействующие с пользователем через мессенджер, систему обмена сообщениями. Это может быть мессенджер, встроенный на страницу сайта, или мобильный мессенджер, вроде WhatsApp или Telegram. Через чат-ботов компании предоставляют клиентам дополнительный канал доступа к информации и услугам. Боты могут, например, известить клиента о появлении […]

Client API в Telegram

Большинство современных мессенджеров предоставляют своим пользователям API, предназначенные для различных задач. На примере Telegram посмотрим, как работать с API, что они умеют и чем могут быть полезны. Если вы не зарегистрированы в Telegram — самое время зарегистрироваться. Вы можете не пользоваться аккаунтом в повседневности, но для учёбы он необходим. Возможно, вам будет удобно работать через […]

Запрос к API сервиса ВКонтакте

Самое время подёргать за ниточки API ВКонтакте и посмотреть, что мы можем получить. Посмотрите, что интересного есть на странице документации API ВК. Методами API здесь называют команды, выполняющие запросы к серверу ВКонтакте. Например, метод photos.add добавляет фотографию, а метод gifts.get возвращает список подарков определенного пользователя. Место для того, чтобы открыть страшную правду: Вконтакте не соблюдает REST. Mail.ru, Twitter и другие крупные сервисы […]