Обновить
28.07

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

О создании API

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

Простой backend на C++: это возможно?

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

Была у меня мечта - писать backend на C++. А вот разбираться в unix socket'ах, TCP, многопоточной/асинхронной обработке запросов и во многом другом совсем не хотелось. Не верил я, что до сих пор нет каких-то минималистичных фреймворков. И сегодня я вам расскажу, как можно просто сделать HTTP API микросервис на C++ с помощью фреймворка Drogon.

Поехали!

Почему никто не понимает REST

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

Современное представление о REST сильно отличается от концепции архитектурного стиля, описанной в диссертации его создателя, Роя Филдинга. В этой статье разберемся, как ограничения REST понимал их автор.

Читать далее

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

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

Привет, Хабр! Меня зовут Дима Бочкарёв, я IT-лидер стрима «Сквозные бизнес-компоненты ВТБ Онлайн». В этом посте я расскажу, зачем и как мы меняли архитектуру приложения в части истории операций клиентов, с какими проблемами столкнулись и как достигали цели «сделать всё хорошо». Подробности под катом.

Читать далее

Проблема несовместимых API или как легко поддерживать совместимость с OpenGL, DirectX и Vulkan

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

В программировании очень популярен прием создания программных интерфейсов - API. Этот прием очень полезен, чтобы скрыть все тонкости реализации и не нагружать ими обывателя. Но бывают случаи, когда хотелось бы поддерживать в коде несколько API, которые выполняют одну и ту же задачу, причем с минимальным переписыванием кода. Например: поддерживать работу игры (движка) на различных графических API: DirectX, OpenGL, Vulkan. В данной статье предложение решение данной проблемы.

Читать далее

AdvancedCharts — (не)тривиальный взгляд на анализ биржевых котировок

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

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

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

Читать далее

TINKOFF-INVEST. Разработка торгового робота на JAVA. Часть 1

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

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

Если разработка программного обеспечения не входит в сферу ваших интересов, но слова "акции" и "брокер" не являются чуждыми, то загляните под кат ради интереса, где можно будет узнать о том, что тикер неуникален, а также о таких идентификаторах, как ISIN и FIGI, кроме того, в конце статьи будет доступен для скачивания свод инструментов, доступных у брокера TINKOFF. Чуть не забыл, еще и про всеми любимый Agile немного можно почитать.

Читать далее

RPC — концепция

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

Свою первую апишку я написал лет 7-8 назад и это был первый блин. В целом этот блин прошел кучу испытаний и модернизаций и получилось, что то вполне вменяемое. Даже сейчас я понимаю, что это ядро актуально и его можно развивать дальше и оптимизировать к текущим реалиям (пока нет подходящего проекта).

Как можно догадаться это было Rpc. Наверно стоит начать с того, что я выделил ряд слоев (какие то можно опустить, какие то добавить).

Читать далее

Service Mesh на стероидах: как построить управляемое взаимодействие между сотнями микросервисов

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

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

Мы хотим поделиться опытом, как решили эту задачу в Netcracker. Как в этом помогла концепция Service Mesh и идея применить «микросервисную модель» и к структуре Service Mesh. Мы реализовали Non Uniform Service Mesh (NUM), который представляет собой продукт и набор паттернов его применения.

Сама статья основана на расшифровке выступления на SaintHighload 2021 в Питере Алексея Ефимова, системного архитектора Netcracker и руководителя отдела Cloud Core. Ссылка на запись — в конце статьи.

Читать далее

Django Rest Framework для начинающих: создаём API для записи и обновления данных (часть 2)

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

Продолжаем цикл статей, посвящённый основам Django Rest Framework. В предыдущей статье мы подробно рассмотрели, как сериалайзер валидирует входные данные.


В этой статье мы закрепим теорию на простом примере, а также затронем те вопросы, которые не успели рассмотреть раньше:


  • какое поле сериалайзера выбрать для ForeignKey-поля модели;
  • как сериалайзер работает с датами;
  • как устроен метод save сериалайзера.

А ещё мы напишем контроллер, который будет обрабатывать запросы к API на создание записи в БД.


image

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

MLflow: вывод моделей в продакшн и инструмент MLOps

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

В данной статье речь пойдёт о том, что такое инструмент MLflow и из каких компонентов он состоит. Как работает данный фреймворк, в каких случаях рекомендуется его использовать и какие проблемы он позволяет решить. Затронем основные плюсы и минусы данного инструмента.

Читать далее

GraphQL: как сделать бэкенд приложения экономнее и быстрее

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

Самый распространённый стандарт для обмена информацией внутри приложений — это REST API. Его все любят, но знают, что он не идеален. В этой статье обсудим его альтернативу — GraphQL. Мы расскажем, в чём преимущество GraphQL, как выглядят запросы и с чего начать.

Читать далее

Автоматизация контроля качества чатов в колл-центре

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

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

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

Читать далее

Разработка REST API-сервиса на платформе WSO2

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

В прошлой статье мы рассказывали, как у нас в банке работает платформа WSO2. Мы предоставляем ее как сервис, как интеграционный слой, следим за его стабильностью, а разработкой на платформе занимаются уже команды из подразделений. Они работают на разных стеках — Java, C# и т.д. — и обращаются к нам по необходимости за консультациями. Проанализировав обращения, мы решили сделать несколько инструкций по разработке на WSO2, которые охватили 80% всех вопросов, что приходят от команд. Теперь хотим поделиться наработками со всеми и начнем с разработки REST API-сервиса на WSO2. Бонус для самых терпеливых — в конце поста.

Читать далее

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

Забираем большие маленькие данные по REST API

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


Кадр из мультфильма «Смешарики: 132 серия (Пылесос)»


При проведении различной ad-hoc аналитики или же создания интеграций между DS решением и внешними системами очень часто приходится использовать REST API для получения данных. Ситуация, когда все помещается в один запрос — идеальна, но редка как единорог. Как правило, приходится тянуть большие объемы, тянуть по частям и в режиме многоходовок, возможно, с использованием курсоров. Внешняя система может лечь при большой нагрузке или же там включатся механизмы пропуска запросов (троттлинг). Вопросы «почему у меня не работает» и «как мне сделать, чтобы работало» возникают с завидной регулярностью.


Ниже приведен блочный разбор типового скрипта для получению данных из внешней системы через REST API. Его можно рассматривать как первое приближение решения задачи подобного класса.


Является продолжением серии предыдущих публикаций.

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

Несколько вещей, которые разработчику стоит знать об Open Banking

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

Меня зовут Роланд Местерс, я СЕО и сооснователь компании Nordigen. Сегодня хотелось бы поговорить о некоторых нюансах Open API (Open Application Programming Interface) в отношении разработчиков. Они могут пригодиться тем специалистам, которые работают в банковской и финансовой отрасли. Поскольку я непосредственно занимаюсь вопросом открытого банкинга, то и поделиться есть чем.

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

Читать далее

Способы попадания в 3D-цель с помощью API КОМПАС-3D

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

Недавно на нашем сайте вышла новость о разработке приложения для КОМПАС-3D, позволяющего автоматизировать процесс моделирования строительных лесов. Уникальность данного приложения состоит в том, что компоненты строительных лесов, добавляемые в сборку, могут автоматически сопрягаться между собой. И это “автосопряжение” не требует от конструктора задавать набор классических сопряжений, лишая компоненты степеней свободы. На самом деле, нельзя сказать, что мы нашей проектной командой АСКОН-Волга создали что-то неведомое. Программные методы, которые были использованы для реализации функции автоматического сопряжения, давно доступны в API КОМПАС и применяются при разработке многих приложений для системы КОМПАС-3D.

Читать далее

Уязвимость и баги, стоящие денег клиентам. Разбираем модуль от CS Coding для CMS CS Cart

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

На написание данной статьи меня вдохновила уязвимость в модуле "Авторизации по телефону", который разрабатывается и поддерживается CS Coding.

Читать далее

Аутентификация в Edge и передача идентификаторов, не использующих токены

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

Как может подтвердить большинство разработчиков, работа с протоколами безопасности и идентификационными токенами, также, как и с аутентификацией пользователей и устройств, может быть сложной задачей. Представьте, что у вас есть несколько протоколов, несколько токенов, более 200 миллионов пользователей и тысячи типов устройств, и проблема при этом может расширяться. Несколько лет назад мы решили разобраться с этой проблемой, запустив новую инициативу, и в итоге создали новую команду, чтобы перенести сложную обработку аутентификации пользователей и устройств, а также различных протоколов безопасности и токенов на границу сети, управляемой набором централизованных сервисов и одной командой. В процессе мы изменили end-to-end передачу идентификаторов внутри сети сервисов, чтобы использовать криптографически верифицируемый объект идентификатора, не использующий токены.

 Далее вы узнаете больше об этом путешествии и о том, как мы смогли:

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

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

Улучшить возможности аудита и криминалистического анализа.

Перевод @middlejava

Читать далее

Модные видео гличи на C++

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

В этой статье рассказывается о способах создания видео фильтров на C++ для разных программ, а так же тут рекламируется моя опенсорс программа SEZE II с интересными эффектами на подобии пиксельной сортировки, эмулятора аналогового ТВ, случайного 3-битного дизеринга и прочим

Читать далее

Разработка Telegram-бота на JAVA для генерации и считывания QR-кодов

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

пример разработки Tekegram-бота, функционал которого позволяет сканировать и генерировать QR-коды. Плюсы использования Telegram-бота в сравнении с традиционными приложениями-сканерами это: отсутствие необходимости устанавливать дополнительный софт (при наличии Telegram, естественно), возможность чтения цифровых изображений без использования камеры (например, из галереи или с web-сайта) и кроссплатформенность. Логика работы бота проста – отправляешь боту QR-код, в ответе получаешь расшифрованную информацию, отправляешь текст – в ответе получаешь QR-код. Просто? Да! Удобно? Несомненно!

Читать далее

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