Обновить
39.11

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

О создании API

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

JSON? JSONB? BSON? CBOR? MsgPack? А, VaryPackǃ

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

VaryPack — новый, простой, гибкий, шустрый и компактный формат бинарной сериализации произвольных данных.

Что за модная тема?

Новости

Платите за Wazzup, Chat-API или Green API? Вот бесплатная альтернатива: Evolution API v2 + n8n на VPS

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

Привет! Недавно наткнулся в GitHub на репозиторий Evolution API — open-source решение для работы с WhatsApp через API. Заинтересовался, решил протестировать и сразу понял, что это отличная альтернатива официальному WhatsApp Business API, который требует верификации бизнеса и стоит денег.

Развернул Evolution API на своем VPS, настроил интеграцию с n8n, и получил полноценный инструмент для автоматизации работы с WhatsApp. В этой статье поделюсь своим опытом установки и настройки — весь процесс занял около часа, включая подключение к WhatsApp и создание простого рабочего автоответчика.

Читать далее

Gately — мой симулятор логических схем: от «игрушки» к диплому

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

История создания логического симулятора на TypeScript: от «игрушки» на паре до архитектурного движка с DI, event-bus и системой плагинов.

Читать далее

Пора двигаться быстро. Даже если ты на Битриксе (часть 3)

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

Привет, хабровчане! На связи Алиса — тимлид в e-commerce агентстве KISLOROD.

Кто о чем, а я продолжаю рассказывать, как сшипперить Bitrix и Laravel. В первой части я рассказывала, как подружить Laravel с Битриксом так, чтобы никто не пострадал. Во второй — как устроить единый вход без шаринга сессий, ускорить каталог с OpenSearch, внедрить outbox-публикации и навести порядок в наблюдаемости. Теперь третий шаг — разгружаем чтение.

Читать далее

Laravel и Битрикс: как разъехаться в проде и остаться друзьями (часть 2)

Время на прочтение20 мин
Количество просмотров491

Привет, хабровчане! На связи Алиса — тимлид в e-commerce агентстве KISLOROD. Мы ежедневно имеем дело с большими каталогами, сложной коммерцией и 1С, которая дышит в затылок. И однажды мы решили сделать невозможное: подружить Битрикс с Laravel... 

В первой части мы доказали, что Laravel и Битрикс могут жить вместе, как кот и пылесос — с уважением к личному пространству. Во второй — выносим бизнес-логику, не ломая 1С. Рассказываю, как устроить единый вход без шаринга сессий, ускорить каталог с OpenSearch, внедрить outbox-публикации и навести порядок в наблюдаемости. 

Читать далее

Получить цены акций, фондов и ОФЗ в Google Sheets

Время на прочтение3 мин
Количество просмотров802

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

Изучая информацию по работе с API в таблицах Google/Excel, понял лишь то, что я ничего не понимаю, разбираться в xpath, в парсинге XML внутри формулы это всё, как-то очень тяжело и громостко. У меня была простая задача, разработать что бы то ни было для получения текущей цены по конкретному активу с Мосбиржи. И как мне кажется, у меня это получилось в дотаточной степени чтобы можно было получить информацию и далее, как-то её агригировать, как вам удобно. Также сразу поясню, что функция GOOGLEFINANCE больше не работает, по этому остается искать другие пути решения.

Читать далее

Адский эксперимент: личный сайт на нищих микросервисах

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

Микросервисы тут, микросервисы там… Из каждого утюга доносится дивный сказ про прекрасный мир микросервисов. А ведь это всего лишь один вид из десятка архитектурных стилей, который имеет свои достоинства и недостатки.

В этом эксперименте мы внедрим микросервисы в личный сайт, нарушив ключевые принципы DDD. Я создам антипаттерн «бедных сервисов» (Anemic Domain Model) и покажу, чем опасен прямой доступ к данным между микросервисами.

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

Читать далее

Не искушайте пользователей делением на ноль

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

Команда разработчиков прислала мне на ревью свой API, в одной из частей которого множество поддерживаемых значений выражалось в виде трёх чисел:

• Минимального допустимого значения.
• Инкремента.
• Максимального допустимого значения.

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

Команда сообщила, что если инкремент равен нулю, то поддерживаются только минимальное и максимальное значения.

Я указал, что эта архитектура искушает пользователя делить на ноль.

Читать далее

Интервью с автором книги «Архитектура бэкенда. API для надёжных корпоративных приложений»

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

Здравствуйте, уважаемые читатели. Сегодня мы предлагаем вашему вниманию текст, который приоткрывает некоторые аспекты нашей авторской кухни. Пост получился благодаря тому, что своим авторским опытом с нами поделился уважаемый Владислав Светлаков из Минска, выпустивший у нас книгу "Архитектура бэкенда. API для надёжных корпоративных приложений". Книга отлично продаётся у нас чуть менее трёх месяцев и продолжает разработку большой темы проектирования API. Ранее мы выпустили другие подобные книги, большинство из которых ориентировано на поддержку и доработку бэкенда. Важнейшие из них:

Читать далее

От REST к gRPC и GraphQL: современный подход к API

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

В статье сравним REST, gRPC и GraphQL с точки зрения производительности, гибкости и архитектуры микросервисов. Покажем, как объединить GraphQL и gRPC для фронтенда и бэкенда, чтобы получить мощный API без лишнего трафика и задержек.

Читать далее

Семь кругов финтеха глазами разработчика: что ломается в платёжных интеграциях

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

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

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

Читать далее

Один Swagger вместо сотни страниц Confluence: как в Рунити навели порядок в API-документации

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

Привет, Хабр! На связи Маргарита Сорочинская, технический писатель отдела архитектуры в Рунити. Хочу рассказать, как мы в компании подошли к описанию API в Swagger — и почему решили перенести туда всё, что раньше жило в Confluence. А еще поделюсь с вами стартерпаком для описания API в Swagger, пошаговой инструкцией и всеми ссылками, чтобы для вас этот путь был уже более простым.

Читать далее

Чек-лист, который превращает интеграцию из хаоса в процесс

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

Добрый день, дорогие читатели!

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

Читать далее

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

Разбор системы: Доставка котировок

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

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

Читать далее

Парсинг HH.ru: от /vacancies до асинхронных очередей и боли с ConversationHandler'ами

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

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

Думаю, у каждого, кто искал работу, есть этот "любимый" запрос на hh. Вбиваешь "Python Developer", ставишь фильтр "нет опыта", а тебе вываливается 500 вакансий "Senior Analyst", где в требованиях "базовое знание SQL, Python будет плюсом".

Ручной разбор этой каши убивает время и мотивацию. Мой друг Роман (он IT-рекрутер и карьерный консультант) постоянно рассказывает, как кандидаты выгорают еще до первого собеса именно на этом этапе.

Я решил, что хватит. Пора автоматизировать рутину. Казалось бы, 30-минутная задача: дернул API, отфильтровал, откликнулся. Как же я ошибался. Сегодня расскажу, на какие грабли наступил, пока пилил «Аврору» - свой инструмент для автоматизации этого ада.

Читать далее

Не обижайте Django

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

Чем популярнее становится FastAPI, тем сильнее критикуют Django. И не просто критикуют. Брезгуют? Пренебрегают? Всего понемножку. Всё чаще слышу, что Django — пережиток прошлого. Любой проект на Django — устаревший мусор. Любой «джанговод» — просто не знает, что тоже устарел. Объективно ли это? Нет, не объективно. Если отвёртка плохо забивает гвозди, это не значит, что отвёртки устарели — просто это не их задача.

Читать далее

Google Регистрация в Android на kotlin + jetpack compose

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

🚀 Хотите создать регистрацию в стиле Google для своего Android-приложения? 🚀

Забудьте о скучных формах! Погрузитесь в мир плавной анимации, интуитивного дизайна и надежной безопасности – всё это с помощью Kotlin и Jetpack Compose.

Что вас ждет:

Пошаговый гайд: От первых строк кода до готового результата – разберемся вместе.

Рабочий код: Не просто теория, а готовые решения для вашего проекта.

Комментарии эксперта: Поймете каждый шаг и сможете адаптировать код под свои нужды.

Секреты профессионалов: Узнаете, как сделать регистрацию не только функциональной, но и привлекательной.

💪 Не упустите шанс прокачать свое приложение! 💪

Читать далее

Оверинжиниринг в бэкенде: «промышленные» решения, которые чаще вредят, чем помогают

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

За годы работы с TypeScript, Java, Kotlin и Go я не раз сталкивался с одним и тем же паттерном: команда внедряет «правильное» архитектурное решение — и получает не гибкость, а технический долг.

Причина проста: оверинжиниринг маскируется под профессионализм. Мы выбираем сложные инструменты не потому, что они нужны, а потому, что «так делают в серьёзных проектах».

В результате принцип KISS — «Keep It Simple, Stupid» — работает не хуже, чем в 1930-х, когда его впервые сформулировали в среде авиационных инженеров. В этой статье — мой личный список подходов, которые в 90% случаев (особенно в REST-серверах) приносят больше вреда, чем пользы.

Читать далее

Почему Google Таблицы лучше Excel для частного инвестора, и при чем здесь Apps Script

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

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

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

В этой статье мы разберём, как Google Таблицы могут дать инвестору больше свободы. Я покажу на примерах, как с помощью встроенных инструментов и простых гугл скриптов (Google Apps Script) превратить таблицу в полноценную платформу для анализа и автоматизации вашего портфеля. А ещё разберем получение котировок в обоих инструментах.

Читать далее

Как научить Telegram-бота на Python не терять задачи пользователей при перезапуске. Кейс ассистента для hh.ru

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

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

Мы тут в свободное время пилим проект, который должен решить боль многих айтишников, — автоматизировать рутинный поиск работы. Идея выросла в Telegram-бота «Аврора» , который на "автопилоте" ищет вакансии на hh.ru и откликается на них.

Но чтобы "автопилот" был полезным, он должен быть надежным. Никому не нужен ассистент, который при первом же деплое новой версии или падении сервера забывает, что он делал, и какие вакансии уже отправил.

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

Под катом — наш подход к Graceful Shutdown, восстановлению сессий и немного про то, как LLM (в нашем случае Gemini) генерирует поисковые запросы.

Читать далее
1
23 ...

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