Обновить
28.57

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

О создании API

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

Websocket API на nodejs по новому

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

О чем эта статья?

1. uWebsockets.js - высокопроизводительная реализация http/websocket сервера для nodejs

2. AsyncAPI - спецификация для асинхронного API, с помощью которой можно создать описание Websocket API

3. Простой пример websocket API с использованием библиотеки wsapix:
- создадим websocket сервер, используя uWebsockets.js
- настроим валидацию получаемых и отправляемых сообщений
- добавим генерацию документации из кода

Читать далее

По секрету всему свету, или как Raiffeisen гоняет (не) твои паспортные данные по сети тысячи раз

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

Одной унылой ночью мне стало скучно разгребать БИНы российских банков, отчего я решил сделать дублирование операций из своего ныне основного банка в телеграм. Тем более, что качество обновлений оставляет желать лучшего (или это просто я избалован лучшим мобильным приложением от одного там небанка)

Отрицание. Что делают хоть немного люди, когда хотят попользоваться непубличным API? Наверное, идут на GitHub и вводят в строку поиска что-то типа "api service_name". Много что уже заревёр(с/ш)ено, посему велик шанс найти полноценный враппер. Но нет, обнаруживаю только всяку каку с хакатонов.

Гнев. DuckDuckGo'инг тоже не даёт результатов. Неужели никто не пытался автоматизировать работу с Райфом?

Торг. Открываю веб-банк и смотрю через монитор сети (ctrl+shift+e в лисе), куда шлются запросы после каких-либо действий. Ага. Ищу по доменам на гитхабе. Опять ничего. ВАААУ. Уже становится страшно.

Депрессия. Расковырял APK'шку и судорожно ищу по всем файлам наличие "raiffeisen.ru", однако kFind ничего сверхъестественно-полезного не выдаёт. Как и по запросу "api".

Смирение. Достаю свой прошлый телефончик с Android 8.1 на борту, ставлю купленный несколько лет назад для решения похожей задачи с одним там небанком HttpCanary — шикарный клиент для анализа http(s), tcp, udp и web-socket трафиков. Ставлю доверенный сертификат, ля-ля-ля тополя, бюрократия, в общем. Теперь активирую self-vpn и запускаю заветный Raiffeisen.

Принятие. В PiP-окошко с логом всех http-запросов летит первый мусор на всякие уведомления. Прикладываю палец к сканеру, дабы войти в приложение. Ага. Вижу запрос, содержащий "oauth/token". Чую, что что-то связанное с авторизацией. Пускает в приложение. Но вот незадача, никакие данные не отобржаются, типа баланса счетов или истории операций. Окей, смею в тот момент предположить, что это как-то связано с доверенным сертификатом. Тыкаю в раздел операций. Тоже не отображаются данные, но запрос ушёл успешно. Можно отключать анализ и идти разгребать урылы, заголовки и содержимое.

Читать далее

Библиотека СleanAPI: cоздаем микросервис на Python за 30 секунд

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

Использование микросервисной архитектуры для построения корпоративных приложений взамен традиционной монолитной — популярный тренд в веб-разработке.

Первая проблема, которую вам предстоит решить, столкнувшись на практике с задачей написать микросервис на Python — выбор подходящего фреймворка.

Мой выбор — Tornado. Поработав с Tornado в паре коммерческих проектов, я в целом остался доволен результатами. Однако, как бы ни было хорошо, всегда хочется чего-то большего.

Результатом моих раздумий стала небольшая библиотека CleanAPI, представляющая собой оболочку над Tornado, позволяющую повысить удобство разработки и снизить порог вхождения для новичков.

Читать далее

Интеграция с Mindbox. Сложный маркетинг — это просто

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

АСНА входит в пятерку лидеров на российском аптечном рынке и задачи ставит соответствующие: сложные и масштабные.

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

Читать далее

Пишем генератор API тестов и данных для них

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

Привет, Хабр. Меня зовут Дмитрий Гусаков. Я тимлид команды QA в компании Arenadata. Наша команда занимается тестированием компонентов Arenadata Enterprise Data Platform, в том числе тестированием оркестратора гибридного data-ландшафта Arenadata Cluster Manager. Каждый день мы пишем и актуализируем большое количество тестов для API. Поэтому сегодня я хочу обсудить тему автоматической генерации таких тестов и поделиться с сообществом нашими решениями и опытом.

Читать далее

Новые API в .NET 6

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

.NET 6 в процессе разработки, и я хотел поделиться некоторыми из моих любимых новых API в .NET и ASP.NET Core, которые вам обязательно понравятся. Почему они понравятся? Потому что они разработаны при прямом участии нашего фантастического сообщества разработчиков .NET. Подробнее в статье.

Читать далее

Как автоматизировать сбор статистики из Яндекс.Дзен при помощи кода

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

У Яндекс.Дзен нет готового API, чтобы агрегировать статистику привычным для аналитиков и маркетологов образом. Чтобы собрать данные, нужно пройти 8 шагов: зайти на zen.yandex.ru, перейти в кабинет, затем в раздел «Статистика», потом на вкладку «Кампании», выбрать период и нажать на «Отчеты». Затем в сформировавшихся отчете Excel перейти на вкладку «Статистика кампаний по дням», выбрать нужную кампанию и создать сводную таблицу. 

Стал 1 шаг: заходим по ссылке — несколько строк кода уже зашли в Дзен и выгрузили всю нужную статистику. 

Рассказываем на своём примере, как можно оптимизировать процесс.

Читать далее

В чем польза формальных спецификаций вроде OpenAPI?

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


В этой статье хочу рассказать, что такое OpenAPI и зачем он может быть нужен.

Читать дальше →

JDK Stream реверс-инженеринг (реконструкция)

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

Привет all!

Приглянулась мне однажды идея реверс-инженеринга (реконструкции) StreamAPI из JDK8. Что из этого вышло, прошу под cat...

Под cat

Как мы автоматизировали процесс генерации Release Notes

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

Всем привет! Меня зовут Семен. Я Java-разработчик и руководитель группы Java-разработки в Центре Big Data компании MTS Digital. В этом посте я хочу поговорить о Release Notes. Что это такое, почему не стоит писать их вручную и какие есть способы автоматизации. Покажу и реальный пример того, как организована  работа с Release Notes в нашем проекте.

Читать далее

SDK и API: в чем разница?

Время на прочтение4 мин
Охват и читатели133K
Разработчики программного обеспечения пользуются основными инструментами: SDK и API. По сути, как SDK, так и API позволяют улучшить функционал приложений, не прибегая к большим усилиям.

Что такое SDK?


Аббревиатура SDK расшифровывается как software development kit. SDK, или devkit, — это набор средств для разработки ПО под определенную платформу. Он содержит компоновочные блоки, средства отладки, а зачастую фреймворк или группу библиотек кода, например набор подпрограмм для определенной операционной системы.
Читать дальше →

Как продавать партиями на AliExpress

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

История о том, как продажников при устройстве на работу просят продать ручку — стала классикой, разлетелась в виде анекдотов и мемов. Но реальность порой оказывается куда круче старых баек. Не верите — попробуйте продать ручку на АлиЭкспресс.

Всем привет, это Антон Баташов, руководитель отдела интеграции в компании XWAY, и в этой статье мы поговорим о том, как продавать товары минимальными партиями на маркетплейсах. 

При торговле всегда есть сопутствующие затраты на логистику, сборку, упаковку, хранение, доставку. Хорошо, когда товар дорогой и высокомаржинальный — даже если он габаритный, маржа покроет все расходы. Но как быть с дешевым ассортиментом? Раз уж мы начали с примера про ручки — давайте на канцелярских товарах и сфокусируемся. 

Читать далее

Продолжаем ковырять Тинькофф API. Рассчитываем эффективность инвестиций

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

Продолжение публикации: "Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel".

В этот раз поговорим о совершённых доработках, всплывших подводных камнях, исправленных ошибках, участии сообщества, подсчитаем XIRR и попробуем сравнить доходность портфеля за 3 года с другими видами инвестиций.

Пост длинный, но много картинок

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

Развитие инфраструктуры Погоды. Доклад Яндекса

Время на прочтение9 мин
Охват и читатели7.7K
Что делать, если у вас завелись микросервисы, API стало слишком сложно пользоваться и на фронте все чаще мелькает undefined is not a function? На примере Яндекс.Погоды я показал, как мы эволюционировали из REST в GraphQL и почему это сделало жизнь разработчиков фронтенда и приложений мягкой и шелковистой.

— Меня зовут Всеволод Струкчинский, я ведущий разработчик Яндекс.Погоды. Доклад будет о том, как мы проектируем свой API, чтобы им было удобно пользоваться и мы от него не страдали.
Читать дальше →

Как удобно мониторить Citrix XenDesktop

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

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

Читать далее

Что не так с Asterisk Realtime и как с этим жить

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

Не так давно я опубликовал пост, в комментариях к которому было высказано мнение, что у астериска есть некоторые проблемы с механизмом realtime. Так вот, на данный момент, вынужден согласиться с этим утверждением, более чем полностью. Как следствие, встал на путь разочарования asterisk'ом как платформой-"конструктором". Почему и как это произошло и при чём тут tarantool, а самое главное, что со всем этим можно сделать? Давайте разбираться под катом.

Читать далее

Microsoft Graph API Requests или иной способ управления Microsoft 365

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

Довольно часто приходят задачи написать скрипты для Microsoft 365, будь то репортинг или какие-то автоматизации. Как правило, сервисы входящие в пакет M365: Exchange Online, SharePoint Online или Microsoft Endpoint Manager - имеют свои отдельные модули для работы с ними из PowerShell. Однако возникают ситуации, когда функционала этих модулей недостаточно. В таких случаях остается либо ждать, когда этот функционал все же появится, либо писать скрипты под Graph API самому. Как правило это 2–3 функции основные, и множество их вариаций. В какой-то из дней при шедулинге очередного такого скрипта в голову прокралась идея, а почему бы не написать свой модуль для подобного рода запросов? Причем такой, который не ограничивался бы списком каких-то конкретных команд, и такой, чтобы если появилась какая-то новая функция, тем кто будет пользоваться этим модулем не пришлось бы ждать обновления со стороны разработчика. В итоге на свет появился Graph API Requests,  модуль, который позволяет делать практически любого вида запросы к Microsoft Graph API, доступные и описанные в официальной документации Microsoft используя PowerShell.

Читать далее

Операция «Т», или выйти в прод за полгода

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

Операция под кодовым названием «Т», или как мы дали каждой команде по кластеру и вышли в прод за 6 месяцев.

Читать далее

Кратко: запросы к API и разбор XML-ответов. Python

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

Этот пост предназначен в первую очередь для новичков в разработке, впервые столкнувшихся с необходимостью отправить post/get запросы к какому-нибудь API и проанализировать полученный в XML ответ. Постаралась собрать необходимы минимум в одном месте.

Читать далее

10 приниципов разработки на Java

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

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

Читать далее про принципы разработки

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