Обновить
22.07

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

О создании API

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

Микросервисы на пальцах: API‑Gateway, API‑Composition, KrakenD, FastAPI

Время на прочтение14 мин
Количество просмотров33K

Количество современных приложений, построенных на микросервисной архитектуре, очень велико. А сами микросервисы стали уже больше обыденностью, чем какой-то редкостью. В этом материале рассмотрим API-Gateway, BFF и композицию API — три базовых шаблона, которые можно встретить почти в каждой системе с микросервисами. Наша задача — понять, для чего они нужны, какие проблемы решают и создают. Пройдемся по теории и развернем реальный пример на инфраструктуре.
Читать дальше →

Backend-for-Frontend (BFF): решение проблемы взаимодействия фронтенда и бэкенда

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров11K

В современной разработке веб-приложений одной из ключевых проблем является несовместимость между фронтендом и бэкендом. Фронтенд-команды часто вынуждены ждать, пока бэкенд предоставит необходимые API, а бэкенд-разработчики тратят время на адаптацию логики под изменения в интерфейсе. Это приводит к задержкам в разработке, сложностям в тестировании и постоянным несоответствиям в данных.

Что такое Backend-for-Frontend (BFF)?

Backend-for-Frontend (BFF) — это архитектурный паттерн, который помогает устранить разрыв между фронтендом и бэкендом. BFF выступает промежуточным слоем, который адаптирует данные и логику бэкенда под нужды конкретного фронтенда. Это позволяет фронтенд-командам работать с API сразу, а бэкенд-разработчикам подключать логику по мере готовности, что значительно ускоряет процесс разработки и снижает количество доработок.

Читать далее

Автоматизируем доставку сырья на производство с помощью Camunda и SMS API

Время на прочтение13 мин
Количество просмотров1.1K

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

Да вот незадача, память то уже не та у всех. Бывало грузовичок забудет приехать, а бывало, что и сами старички забудут его позвать. Так бы и маялись они все от неэффективности, да на помощь к ним пришли технологии современные — Camunda BPM и МТС Exolve. А что из этого вышло мой дорогой друг ты узнаешь под катом.

Читать далее

Пишем бота «второго мнения» от нейросетей GPT 4o, Gemini 1,5 flash и Claude 3.5 Sonnet

Время на прочтение6 мин
Количество просмотров2.9K

Иногда возникают вопросы, в которых нейросети помогают подумать в правильном направлении, или дают «инсайты». Но спрашивать у каждой сетки одно и то же отдельно может быть долго и неудобно. Сегодня мы напишем бота, который умеет работать сразу с несколькими нейросетями (в дальнейшем вы можете добавить больше моделей, чем будет предоставлено в статье) и получать от них ответы в едином интерфейсе.

Читать далее

Обработка ошибок REST API: лучшие практики

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

Привет, Хабр! Меня зовут Екатерина Саяпина, я Product Owner платформы МТС Exolve. Коды ошибок — последнее, что хочет видеть разработчик в ответе API. И означают они одно из двух: либо есть проблема в запросе, либо что-то сломалось на стороне API.

В любом случае трафик останавливается: нужно найти причины и решения. И коды ошибок в этом случае — полезный диагностический элемент. Сегодня я расскажу про подходы к их обработке и дам пример распространенной классификации.

Читать далее

Как оптимизировать производительность API при высокой нагрузке

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров4.3K

В статье мы рассмотрим основные подходы и практики для оптимизации производительности API, применяемые в МТС Exolve, поймем, как избежать подобных последствий и обеспечить стабильную работу сервисов.

Читать далее

Простой TypeScript клиент для Telegram Bot Api

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.8K

В этой статье я рассказываю о создании своей библиотеки для работы с Telegram Bot API на TypeScript.

Около половины материала посвящено разработке собственного парсера, который превращает рутинные HTTP запросы в удобный и типизированный интерфейс.

Если вам интересно, как избавиться от постоянного переключения между документацией и кодом и при этом сохранить весь набор возможностей API – эта статья для вас 😊

Читать далее

Опять DeepSeek? Побудем в роли детектива

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров8.8K

Когда про DeepSeek-r1 начали говорить уже из каждого утюга, я долго думал, а стоит ли еще и свои 5 копеек вставлять в эту историю, и подумал, конечно же да! Ведь могу.

Если коротко, просыпаюсь в понедельник и вижу сотни постов в час на тему «революции в ИИ», «гигантский скачок в развитии LLM», «Акции big tech компаний падают», «NVIDIA потеряла сотни миллиардов долларов» — все эти статьи и посты имели кое-что общее — упоминание DeepSeek. Первое, что я почувствовал, это, конечно, небольшое недоумение — так он уже несколько дней точно лежит в библиотеке ollama, а до этого еще лежал на hugging face, да еще и я уже и развернул его на домашнем сервере и тестирую, так почему он внезапно то хайповать стал?!

Подумал, подумал, и пошел работать, лишь к вечеру вернувшись к этому вопросу. Решил разобраться, откры Хабр и понял, что уже куча опубликованных статей в стиле «⚡️», так что решил подождать чуть более логичных рассуждений обо всей этой истории. В итоге, время шло-шло-шло, я уже состарился на целую неделю, параллельно изучая причины происходящего, но, так и не дождался полноценного разбора произошедшего, так что я решил написать статью в стиле «🐢».

Читать далее

Как отлаживать плагины в Revit: ускоряем разработку

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.1K

Отладка плагинов Revit – это важный этап разработки, который позволяет избежать неожиданных ошибок. Однако стандартный запуск Revit с плагином может быть неудобным: долгое ожидание загрузки, сложность тестирования, невозможность быстро анализировать переменные. В этой статье мы рассмотрим, как настроить удобную отладку, чтобы ускорить процесс разработки.

Читать далее

Лучшие статьи Хабра в январе 2025 года

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров6.8K

Уже более десяти лет я регулярно читаю Хабр, однако, как и многие другие пользователи, обычно концентрируюсь на статьях из своей ленты новостей. Это практично, но существует вероятность упустить интересные публикации, которые остаются вне моего внимания. Чтобы разобраться в актуальных тенденциях, я решил провести собственный анализ самых популярных публикаций на Хабре за январь 2025 года.

Для сбора данных я использовал свой парсер на Node.js. Работать пришлось напрямую с HTML, так как скрытого API Хабра я не нашёл. К счастью, внутри HTML разметки каждой статьи находится JSON с ключевыми параметрами: автор, дата, просмотры, рейтинг — это упростило парсинг.

Я обработал все статьи, опубликованные в январе, но в итоговый список попали только те, что набрали более 30 тысяч просмотров или рейтинг выше +30.

Парсим и анализируем 🤖

Как запоминать и не забывать: применяем и автоматизируем Spaced Repetition System

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

Привет! Меня зовут Дима, я Backend-разработчик в Doubletapp. Мне хотелось бы поделиться опытом реализации автоматизации изучения большого объёма информации.

В статье я расскажу:
C какой проблемой я столкнулся
Про возможное решение
Про готовые инструменты, использующие SRS
Notion + ActivePieces + ChatGPT
Опыт использования: плюсы и минусы
Про возможное применение

Читать далее

Эпическое программирование: пишем понятные и поддерживаемые саги

Время на прочтение12 мин
Количество просмотров3.2K

В мире микросервисов часто возникает необходимость сделать согласованные изменения в сервисах. Один из надёжных способов добиться этого — использовать паттерн «Сага», который помогает выполнять распределённые транзакции и при сбоях корректно откатывать изменения. Но, как всегда, есть нюансы, начиная от нереалистичных материалов на эту тему и заканчивая реальным опытом использования. 

Алексей Бакин занимается разработкой внутренних продуктов. Один из них — это API-прокси, предоставляющее внешние API для внутренних сервисов. Для реализации этого решения использовали паттерн «Сага».

Читать далее

Безопасное взаимодействие с API: от ошибок к стабильности

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

Каждый frontend-разработчик сталкивался с ошибкой вида TypeError: Cannot read property 'name' of undefined. Это часть целого класса ошибок в JavaScript, возникающих из-за несоответствия фактического формата данных ожидаемому. В этой статье расскажу, как избавиться от подобных проблем и добиться стабильности, внедрив три ключевых шага: API-слой, Backend-for-Frontend (BFF) и проверку с помощью Zod.

Читать далее

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

Как заставить API самому себе писать тесты: практика генерации тестов на основе спецификации API. Часть 2

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров4.9K

Привет, Хабр. Меня зовут Николай Борисенко. Я специалист по автоматизации тестирования в ОК, и я продолжаю наш рассказ о генерации тестов на основе спецификации API.

В первой части статьи мы уже рассказали об автотестах в ОК, предпосылках внедрения автогенерации тестов и ключевых компонентах разрабатываемой системы. В этой части я продолжу рассказ и подробнее остановлюсь на более прикладных моментах реализации.

Читать далее

FastAPI vs Litestar: выбираем лучший фреймворк для микросервисов

Время на прочтение9 мин
Количество просмотров14K

Привет, жители Хабра! Это Леша Жиряков из МТС Диджитал. В прошлый раз я опубликовал пост Polars vs Pandas, а сегодня поговорим о FastAPI и Litestar — фреймворках для микросервисов. У каждого из них свои сильные стороны, так какой выбрать для своего проекта? Давайте разбираться. Ниже — о плюсах и минусах каждого, сравнение производительности и примеры валидации.

Читать далее

Как автоматизировать рутинные задачи с API UserGate

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

Вам необходимо перенести 1000 объектов и 600 правил из excel-таблички в UserGate? Или, наоборот, экспортировать из него все политики в таблицы для дальнейшего документирования и анализа? А может быть вы просто хотите погрузиться в API UserGate, но не понимаете с чего начать? Тогда эта статья для вас!

Всем привет! Меня зовут Данила Лопатин, я системный инженер в К2 Кибербезопасность. Если у вас стоит NGFW от UserGate, то вы знаете, что у него есть API-интерфейс, который позволяет автоматизировать многие рутинные процессы с помощью скриптов. В этой статье я расскажу про принципы его работы и приведу примеры написания скриптов. 

Читать далее

Как ускорить процесс сделок в Envybox с помощью SMS API

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров376

Привет, Хабр! Сегодня разберёмся, как ускорить работу с клиентами в популярной CRM-системе Envybox в связке с API-платформой для отправки SMS. Envybox позволяет отправлять сторонним сервисам сообщения и предоставлять информацию по запросу.

Например, клиент оставляет заявку — менеджер быстро получает сообщение и принимает её в работу — клиент об этом будет тут же извещён.

В этой статье рассмотрим, как использовать интеграцию Envybox и МТС Exolve.

Читать далее

Как автоматизировать свою переписку с девушкой в Telegram при помощи Python

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

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

Что мы НЕ будем делать: разрабатывать чат-бота, который «любит» за вас. Эту задачу лучше оставить вам.

Цель - организовать начало диалога.

Начинаем 🧡

Как читается Schema в GraphQL API

Время на прочтение11 мин
Количество просмотров4.7K

Чтобы понимать, какие запросы можно отправлять в GraphQL API и что можно получить в ответе, нужно уметь читать его схему. Это как WSDL в SOAP API — описание всех доступных методов.

Да, программы типа Postman или Apollo сами считывают схему и показывают вам всё в красивом виде — просто ходи да «натыкивай» запросы. Но если само API ещё в разработке, чтение схемы поможет понять, что вас ожидает.

Поэтому в этой статье я расскажу, что такое Schema GraphQL API и как её читать.

Читать далее

Оцениваем скорость операций с путями в FastAPI

Время на прочтение7 мин
Количество просмотров1.7K
Если вы сейчас разрабатываете новое приложение на Python, высока вероятность, что при этом вы используете FastAPI. В FastAPI заложено множество отличных возможностей, благодаря которым с ним легко начинать работу. Но в FastAPI есть и немало нюансов, на понимание которых требуется время. Мне пришлось особенно попотеть с одним аспектом, а именно — как FastAPI управляет вызовами к маршрутам API через декорированные параметры пути. Давайте подробно об этом поговорим.

Что происходит на веб-сервере


Одним из важнейших компонентов любого веб-приложения (которое мы создаём) является веб-сервер, программа, слушающая входящие запросы, поступающие из сети. Затем она транслирует эти запросы в методы, которые, в свою очередь, вызываются на бэкенде.

Чтобы лучше понимать, что здесь происходит под капотом, давайте сначала реализуем простой веб-сервер. Для этого воспользуемся модулем http.server, который входит в стандартную библиотеку Python.

Нам требуется написать программу, которая слушает порт и принимает HTTP-запросы. А именно: принимает запрос, разбирает маршрут пути, а также разбирает любые данные, прикреплённые к HTTP-вызову. См. также “All I want is to cURL and parse a JSON object”.
Читать дальше →

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