Обновить
44.44

Проектирование API *

О создании API

Сначала показывать
Порог рейтинга
Уровень сложности

Игра 2048 в вашем Telegram-боте: как создать MiniApp с помощью FastAPI и Aiogram за несколько шагов

Время на прочтение38 мин
Охват и читатели15K

Превращаем известную игру 2048 в увлекательный Telegram-бот! Расскажу, как за несколько шагов создать MiniApp с помощью FastAPI и Aiogram, интегрировать API и настроить базы данных. Пошаговое руководство для тех, кто хочет освоить разработку на новом уровне.

Читать далее

Как создать систему страшных звонков на Хэллоуин на Go и Exolve Voice API

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели694

Хэллоуин — это время костюмов, конфет и, конечно же, легких розыгрышей. И что может быть лучше, чем отправить друзьям и знакомым жуткие автоматические звонки со страшными аудиосообщениями? В этой статье рассмотрим, как с помощью Exolve Voice API и Go можно создать систему для отправки пугающих звонков.

Читать далее

История одного идемпотентного метода

Время на прочтение3 мин
Охват и читатели1.3K

Привет! Меня зовут ProcessPayment, и я — идемпотентный метод, созданный для надёжной обработки платежных запросов. Моя задача — принимать запросы, списывать деньги и, самое главное, избегать дублирования операций. На пути к этой цели было множество этапов, каждый из которых сделал меня сильнее и надёжнее. Давайте расскажу, как это было.

Читать далее

Аптайм вахтер: мониторинг веб-сервисов с помощью Globalping и уведомлениями в Telegram

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели1.2K

Представьте: ваш сервис должен работать безотказно 24/7, быть доступным из любой точки мира, а любые проблемы нужно обнаруживать мгновенно. Как убедиться, что сайт одинаково быстро работает в Нью-Йорке, Токио и Москве? Как отследить проблемы маршрутизации или цензуры в разных странах?

Стандартные системы аналитики могут помочь с базовым мониторингом доступности, но что если вам нужно больше? Что если нет возможности установить счетчик или вас не устраивает способ доставки уведомлений?

Читать далее

Тестирование на проникновение в веб-приложении VAmPI

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели2.7K

Привет, уважаемый читатель!

В рамках данной статьи мы узнаем:

* Какие API уязвимости есть в VAmPI?

* Из-за чего эти уязвимости существуют и эксплуатируются?

* Какие есть способы защитить веб-приложение?

* Какой есть дополнительный материал для самостоятельного изучения?

Ссылка на GitHub VAmPI: https://github.com/erev0s/VAmPI

Преисполниться в пентесте

Kafka. Лучшие практики применения. Настройки Producer & Consumer

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели36K

Привет, Хабр!

Меня зовут Михаил, я являюсь ФинТех системным аналитиком, исполняющим роль архитектора на проектах. И сегодня я хочу поделиться материалами по Kafka, которые подготовил для обучения сотрудников из своей команды. В материале постарался отразить самые важные технические моменты по Kafka, которые будут подкреплены наглядными кейсами и примерами использования. Материал будет полезным как для начинающих, так и для продвинутых пользователей. Желаю приятного прочтения.

Kafka. Лучшие практики применения.

Создание Telegram Web App с FastAPI: Генерация, сканирование QR-кодов камерой устройства и деплой за 5 минут

Время на прочтение30 мин
Охват и читатели12K

Привет, друзья! Ваш теплый отклик на мою прошлую статью о разработке Telegram-ботов с использованием технологии MiniApp вдохновил меня на создание нового проекта.

Сегодня вы узнаете, как создать Telegram Web App с помощью FastAPI и Aiogram 3, который сканирует и генерирует QR-коды. В статье приведены шаги от установки зависимостей и настройки вебхуков до написания кода на фронте и бэке, и до деплоя проекта.

Читать далее

Автоматизация тестирования с использованием SoapUI — Практическое руководство

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели4.7K

Привет! Меня зовут Александр Крылов, я разработчик Siebel CRM в Московском кредитном банке. 

После разработки очередной задачи, которая полностью основана на интеграциях, перед нами встал вопрос о функциональном тестировании, перед передачей на полноценное тестирование. Задача была достаточно объемной, состояла из десятка сервисов, каждый из которых тесно связан с предыдущим бизнес-логикой.

В этой статье я расскажу, как эффективно автоматизировать тестирование с помощью SoapUI и интегрировать его в процесс CI/CD.

Читать далее

Парсинг котировок ценных бумаг в Microsoft Excel и Google Таблицы с любого сайта

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.4K

Хотя возможность автоматического получения котировок в «Эксель» или «Гугл Таблицы» упрощает ведение портфелей, существует несколько технических препятствий, с которыми можно столкнуться при парсинге или скрапинге (в общем виде это автоматический сбор данных из интернета, в таблицах работает через формулы или скрипты):

📍 Динамическая загрузка контента: современные веб-сайты часто используют JavaScript для загрузки текущий цен уже после первоначальной загрузки страницы. Это создает проблему для базовых методов парсинга.
📍 Ограничения API: некоторые веб-сайты и финансовые учреждения предлагают общедоступные API (например, Московская биржа или Банк России), но и они имеют свои ограничения.
📍А бывает, что можно найти АПИ, например для investing.com, но чтобы воспользоваться им потребует поиск альтернативных методов - имитация человека для того чтобы получить данные - использование автоматизации браузера.

В статье расскажу, как автоматизировать процесс скачивания котировок. Будут представлены готовые файлы с примерами получения цен, которые можно скопировать и с небольшими изменениями вставить в вашу таблицу.

Парсим 🤖

Гибкая фильтрация EFCore с помощью Expression

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели2.7K

Фильтрация данных в EntityFramework — это довольно простая задача, которую можно легко решить с помощью метода Where() в LINQ. Однако если поля для фильтрации как и значения приходят к нам динамически, и тем более если фильтровать приходится по вычисляемым в рантайме значениям - возникают некоторые трудности с их обработкой. В статье рассказываю как я делал динамическую фильтрацию по вычисляемым в рантайме полям с помощью Expression trees и EntityFramework.

Читать далее

Кейс NSX, или Ожидаемые неприятности

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели716

Хабр, привет!

Сегодня рассказываем об еще одном нашем кейсе с NSX-T. В прошлый раз мы написали о проблеме долгой реализации портов. Технические вводные остались те же: NSX используется для построения микросегментированной сети в кластерах Kubernetes + Kyverno. Взаимодействие K8s и NSX реализовано при помощи плагина VMware NCP. Что случилось в этот раз? Команда этого заказчика обновила продукт до версии 4.1., после чего обратилась к нам с проблемой перехода IP pool в состояние Failed.

Читать далее

Как спроектировать библиотеку для Spring Boot

Время на прочтение10 мин
Охват и читатели2.7K
image


Принцип DRY (Не повторяйся) – это важная составляющая цикла разработки программного обеспечения. Его цель – избежать ненужной повторяемости в коде. В частности, имеется множество приложений, которые могут находиться в составе одной и той же микросервисной архитектуры и использовать один и тот же компонент. В результате код становится неудобно поддерживать, поскольку всякий раз, когда требуется внести изменение в этот компонент, с каждым из этих приложений приходится разбираться отдельно.
В этой статье давайте рассмотрим, как можно вынести такие компоненты из приложений в отдельный модуль. Тем самым мы одновременно стремимся упростить поддержку кода и сократить в нём количество повторов.
Читать дальше →

Ролевая модель: чит-лист проверок

Время на прочтение3 мин
Охват и читатели3.5K

Чит-лист — это шпаргалка по выбранной теме, что не забыть проверить. Берете чит-лист как основу, адаптируете под свой проект, и готово!

В своей книге про тест-дизайн я написала ряд чит-листов, которыми и хочу теперь поделиться. Сегодня поговорим про ролевую модель в GUI и API — это когда у нас есть разграничение прав для отдельных пользователей / целых групп (им назначается роль).

Набор ролей может быть очень обширным — права только на просмотр, на редактирование, на редактирование конкретной сущности или даже одного поля в этой сущности, просмотр конкретной страницы (отчетность или аудит), создание связи…

Читать далее

Ближайшие события

Как запрашивать и принимать обратную связь от клиентов с помощью SMS API

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели504

Сегодня мы опишем создание простого сервиса для отправки SMS с вопросами через веб-интерфейс своим клиентам и просмотра всех полученных ответов. На базе этого решения можно построить систему автоматической обработки обратной связи, поэтому вашему маркетологу должно это понравиться.

Мы используем SMS API от Exolve, фреймворк Next.js без APP роутера и базу данных PostgreSQL. Для тестирования в локальной среде и приёма сообщений из интернета работаем с Ngrok.

Читать далее

Сервис для обхода блокировки OpenAI API в России или ваш первый API

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели13K

Всем привет! Сегодня я расскажу вам, как я сделал сервис для обхода блокировки OpenAI в россии со стороны OpenAI (не Роскомнадзор даже) с использованием FastAPI и Docker. Мотивация проста. У меня в РФ есть сервер на котором работают сервисы и я хочу подключить к ним OpenAI, но они не дают доступ, распознавая IP из россии. Подумал что напишу сервер для пересылки запроса. Если вам интересно, как за несколько шагов запаковать работу с ИИ в красивую и простую оболочку, то устраивайтесь поудобнее. Мы вместе погрузимся в этот увлекательный процесс!

Читать далее

Зачем и где нужен API Gateway

Время на прочтение6 мин
Охват и читатели10K

Елизавета Акманова, старший аналитик ГК Юзтех, снова на связи. Сегодня у меня в планах обсудить, зачем и где нужны API Gateway. Для этого верхнеуровнево пройдём по архитектуре этого паттерна, рассмотрим решаемые задачи. Ключевой вопрос на сегодня: Когда стоит использовать эту технологию? Это полезный инструмент но, увы, не всегда.

Читать далее

Как я искал рекомендации аналитиков по покупке российских ценных бумаг в JSON формате

Уровень сложностиСложный
Время на прочтение4 мин
Охват и читатели2.4K

Четыре года назад я написал систему поиска поиска недооцененных американских акций, используя данные Яху Финанс, ведь на американском рынке торгуется больше 10 тысяч бумаг, из которых 4 тысяч бумаг имеют рекомендации аналитиков о прогнозируемой цене. Это большие цифры, с которыми сложно работать. Но что по России?

Я вялотекуще пытался найти систему которая бы также отдавала рекомендации аналитиков, пока недавно не нашёл:

{
"uid": "b993e814-9986-4434-ae88-b086066714a0",
"ticker": "WUSH",
"company": "Финам",
"recommendation": "RECOMMENDATION_HOLD",
"recommendationDate": "2024-09-26T00:00:00Z",
"currency": "rub",
"currentPrice": {
"units": "192",
"nano": 0
},
"targetPrice": {
"units": "250",
"nano": 0
},
"priceChange": {
"units": "58",
"nano": 0
},
"priceChangeRel": {
"units": "30",
"nano": 210000000
},
"showName": "Whoosh"
}

Правда есть один нюанс в количестве. На московской бирже представлено 170 бумаг, из которых имеют рекомендации всего 89 акций.

Гораздо меньшее количество бумаг, зато API выдаёт конкретные имена компаний, которые давали рекомендации, а также дату дачи прогноза и прогнозную цену. Теоретически можно составлять списки самых точных аналитиков, через какое-то время собирая цены и сопоставляя их с прогнозными.

Но мне было больше интересно составить сводную таблицу по всем доступным 89 акциям.

Код представлен на GitHub.

Ищем 🧈

SoundCloud Api или как пример «плохой» документации

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели2K

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

Но, сегодня статья не совсем об этом. На этапе требований к технической составляющей проекта я решил, что нужно какой-то место откуда можно "подтаскивать" мелодии. Пересмотрел я много api и остановился на SoundCloud из-за ряда преимуществ:

Читать далее

SMS-автоответчик с обновлением статуса: еще один канал связи для клиентов, которым мало интернета и звонков

Время на прочтение6 мин
Охват и читатели1.3K

Привет, Хабр! Меня зовут Екатерина Саяпина, я Product Owner личного кабинета МТС Exolve. Сегодня расскажу, как с помощью нашей платформы можно создать SMS-автоответчик, который будет не просто информировать клиентов, но и своевременно обновлять статус доставки товара или его наличия. С ним любой клиент может отправить запрос, например «Статус 4321», и получить сообщение с информацией о заказе. Без необходимости поиска на сайте, звонков или установки приложений.

Читать далее

REST API и архитектура сервиса

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели3.5K

Доброго времени суток!

Хочу предложить вниманию читателей немного поговорить о такой немодной теме, как REST API. Если не углубляться в различия между REST API и REST-подобным API, то с такой вещью имел дело каждый: от junior до senior. Более того, проходя собеседование, можно услышать вполне естественный вопрос: что такое REST API? Если сильно не задумываться, а лишь вспомнить, с чем имел дело, проектируя API очередного сервиса, то можно ответить: ну, там используется http 1.1. Также есть глаголы GET, PUT, POST, DELETE, PATCH и ещё некоторые. Каждый глагол отвечает за что-то одно: создание, изменение, удаление, чтение и т.д. В ответе используются коды ошибок: 200, 301, 401, 404, 500 и т.д. Каждый код обозначает, что всё прошло успешно, или возникли некоторые проблемы: нет прав, страница не найдена, внутренняя ошибка сервера и т.д. И в принципе, такой ответ нельзя назвать некорректным. Всё так, но он поверхностный - не отражает сути REST API. Без понимания сути сложно не допустить ошибку при проектировании. А для понимания необходимо осознать название REST API, то есть дать корректное определение.

Читать далее

Вклад авторов