Как стать автором
Обновить
88.74
Рейтинг

API *

Интерфейс программирования приложений

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Миграция со Spring Boot на Quarkus. Магия или безумие?

Программирование *Java *Проектирование и рефакторинг *API *
Перевод
Tutorial

Quarkus – это стек Java, приспособленный для работы с OpenJDK HotSpot (или OpenJ9 на zSeries) и GraalVM, собранный из оптимизированных библиотек и стандартов Java. Он хорошо подходит для создания сильно масштабируемых приложений, при этом значительно скромнее использует ресурсы CPU и памяти, нежели другие фреймворки Java. Quarkus может работать с традиционными веб-приложениями, бессерверными приложениями и даже с функциями, предоставляемыми как услуга.

Существует много документированных случаев, в которых организации переносили свои приложения на Quarkus. В этой статье рассмотрим один из таких миграционных путей: со Spring Boot на Quarkus. Есть в этом своя магия и свое безумие. Магия – это когда миграция осуществляется как по мановению руки, и ни одной строки кода при этом менять не приходится. Безумие – в том, чтобы попытаться осознать, как все это делается.

Читать далее
Всего голосов 9: ↑5 и ↓4 +1
Просмотры 1.7K
Комментарии 2

Новости

Хардкорная разработка под Телеграм. Бот-модератор своими руками. Часть 3

Мессенджеры *Python *API *
Tutorial

Продолжаем писать своего крутого бота-модератора чатов на Python.

В этой части мы сделаем команды для модерации. Админы чата смогут банить участников, запрещать им писать в чате, давать предупреждения с помощью команд /ban, /mute, /warn.

Некоторые боты-администраторы используют не слэш-команды, а команды через, например, восклицательный знак: !ban, !mute. Но мы будем использовать слэш: это "нативные" команды в Телеграме. Они подсвечиваются в сообщениях, и их можно добавить в список команд для автодополнения.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 1.6K
Комментарии 0

Стажёр Вася и его опыт разработки нового API

Блог компании Яндекс Разработка мобильных приложений *Интерфейсы *API *

Легко ли разработать новый API? На что обратить внимание, чтобы не ошибиться при реализации, и к каким компромиссам стоит быть готовым?


Привет, Хабр! Меня зовут Иван Ивашковский. Я руковожу группой разработки международных проектов в Яндекс Go. Этот пост — продолжение цикла историй о вымышленном стажёре Васе. Предыдущий материал, про идемпотентность, можно почитать здесь. В посте я расскажу, как Вася разрабатывал API для новой фичи и с какими проблемами он столкнулся в процессе. В конце приведу чеклист с советами, как проверить себя на каждом этапе разработки, если вы решаете похожую задачу.


Читать дальше →
Всего голосов 32: ↑32 и ↓0 +32
Просмотры 6.9K
Комментарии 21

Релиз 0.1.36 Nem мессенджера

*nix *API *C *
Recovery mode

За последние 14 дней я разработал мессенджер, у которого отличительная черта от остальных мессенджеров — это то, что серверную программы вы контролируете сами. Вы можете скачать исходные коды серверной программы и установить на свой сервер. Клиентская часть доступна для linux на flathub — приложение называется Nem.

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

Читать далее
Всего голосов 18: ↑15 и ↓3 +12
Просмотры 2.9K
Комментарии 19

Хардкорная разработка под Телеграм. Бот-модератор своими руками. Часть 2

Мессенджеры *Python *API *
Tutorial

Продолжаем писать своего крутого бота-модератора чатов на Python.

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

Нет, мы не получаем эту информацию с каждым сообщением от участника. Так что мы не можем использовать что-нибудь вроде if event.is_sender_admin.

Да, мы можем делать отдельный запрос к Телеграму, чтобы проверить пользователя. Но делать запрос каждый раз, когда кто-то в группе отправляет команду, не получится — быстро наткнёмся на лимиты. Телеграм не позволяет часто делать такие запросы.

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

Компромисс такой: раз в час будем получать список всех админов в группе и хранить их. Плюс ещё сделаем специальную команду !reload, которая будет обновлять список админов в группе вне очереди.

Читать далее
Рейтинг 0
Просмотры 3.2K
Комментарии 5

Настройка области печати через API nanoCAD

Блог компании Нанософт .NET *API *CAD/CAM *C# *
Tutorial

В nanoCAD при настройке параметров печати необходимо выбрать область печати. Если оставить настройку по умолчанию, может быть напечатано совсем не то, что требовалось.

В этой статье мы разберемся, как работать с областью печати через API nanoCAD.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 448
Комментарии 0

Разработка системы заметок с нуля. Часть 2: REST API для RESTful API Service + JWT + Swagger

Разработка веб-сайтов *API *Go *Микросервисы *

Продолжаем серию материалов про создание системы заметок. В этой части мы спроектируем и разработаем RESTful API Service на Golang cо Swagger и авторизацией. Будет много кода, ещё больше рефакторинга и даже немного интеграционных тестов.

Подробности в видео и текстовой расшифровке под ним.

В первой части мы спроектировали систему и посмотрели, какие сервисы требуются для построения микросервисной архитектуры.

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 3.3K
Комментарии 2

Платежные технологии – просто о сложном. Часть 1

Платежные системы *API *Разработка под e-commerce *
Из песочницы

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

Читать далее
Всего голосов 5: ↑2 и ↓3 -1
Просмотры 3.9K
Комментарии 4

Начинающему сетевому программисту

C++ *Visual Studio *API *
Из песочницы

Тема сетевого программирования является для разработчиков одной из важнейших в современном цифровом мире. Правда, надо признать, что большая часть сетевого программирования сосредоточена в области написания скриптов исполнения для web-серверов на языках PHP, Python и им подобных. Как следствие - по тематике взаимодействия клиент-сервер при работе с web-серверами написаны терабайты текстов в Интернете. Однако когда я решил посмотреть, что же имеется в Интернете по вопросу программирования сетевых приложений с использованием голых сокетов, то обнаружил интересную вещь: да, такие примеры конечно же есть, но подавляющее большинство написано под *nix-системы с использованием стандартных библиотек (что понятно – в области сетевого программирования Microsoft играет роль сильно отстающего и менее надежного «собрата» *nix-ов). Другими словами все эти примеры просто не будут работать под Windows. При определенных танцах с бубнами код сетевого приложения под Linux можно запустить и под Windows, однако это еще более запутает начинающего программиста, на которого и нацелены большинство статей в Интернете с примерами использования сокетов.

Ну а что же с документацией по работе с сетевыми сокетами в Windows от самой Microsoft? Парадоксальность ситуации заключается в том, что непосредственно в самой документации приведено очень беглое описание функций и их использования, а в примерах имеются ошибки и вызовы старых «запрещенных» современными компиляторами функций (к примеру, функция inet_addr() - https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-listen ) - такие функции конечно же можно вызывать, заглушив бдительность компилятора через #define-директивы, однако такой подход является полным зашкваром для любого даже начинающего программиста и категорически не рекомендуется к использованию. Более того, фрагмент кода в примере от Microsoft по ссылке выше.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 11K
Комментарии 49

Прокачиваем силу — Rust и Windows API

Блог компании RUVDS.com Системное программирование *API *Rust *Разработка под Windows *


Недавно я написал статью Трясём стариной — или как вспомнить Ассемблер, если ты его учил 20 лет назад. В статье рассказывается о том, как изучать ассемблер на примере игрушки 2048. Возможно для целей самой статьи игрушка была подходящая, но конечный результат меня немного удручил. Бинарник размером в 10 килобайт, который потребляет 2 мегабайта памяти, из-за неправильно слинкованной библиотеки резал глаза.

Посему я задался вопросом, а как это можно было бы сделать правильнее? Наверняка есть намного более удачное решение. (И организовал ещё один конкурс с призами в конце статьи)

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

Причём это не значит, что вы будете использовать какую-то нестандартную библиотеку. Встречайте — windows-rs, проект поддерживаемый Microsoft. Ваш билет в мир Windows, если вы пишете на Rust.
Читать дальше →
Всего голосов 60: ↑56 и ↓4 +52
Просмотры 5.7K
Комментарии 31

whois micro web-api

Python *API *Микросервисы *Flask *

Не так давно появилась задача получения информации о доменах в whois.

Требование простое, дернуть curl-ом и получить json, и чтобы было бесплатно.

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

Получился простой скрипт на flask завернутый в докер. Для работы с whois использовал библиотеку. Тут стоит отметить что служба whois достаточно архаична и децентрализованна. В связи с этим есть проблема с новыми зонами, особенно из New gTLD. Понемногу в проект добавляются новые зоны, но до конца списка еще далеко. Так же, можно отправлять реквесты на добавления нужных зон.

Репозиторий проекта

Подергать его можно тут

Для того чтобы получить инфу по домену нужно просто дернуть его следующим образом.

На этом все, спасибо за внимание :)

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Просмотры 901
Комментарии 7

Выходит первый Python 3.11. Что нового?

Блог компании SkillFactory Python *Программирование *API *C *
Перевод

Делимся переводом документации альфы Python 3.11, которая выходит 4 октября, о разнице в сравнении с версией 3.10. Изменения касаются трассировки исключений, модулей math, sqlite, threading, unittest и других. Удалена ощутимая часть устаревшей функциональности.

Подробности читайте под катом, пока у нас начинается курс по Fullstack-разработке на Python.

Читать далее
Всего голосов 45: ↑30 и ↓15 +15
Просмотры 27K
Комментарии 11

MikoPBX на Aster conf, TTS скрипт для голосования

Open source **nix *API *Asterisk *
Tutorial

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

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

Если заинтересовало, то под кат, подробно разберем пример реализации...

В конце статьи ссылка на видео с конференции...

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 1.2K
Комментарии 0

Java 17: Foreign Functions & Memory API

Программирование *Java *API *

На дворе Java 17, а значит пора разобрать еще один интересный JEP, а именно JEP 412: Foreign Function & Memory API, который является переосмыслением двух предыдущих: Foreign-Memory Access API и Foreign Linker API.

Новый API дает возможность взаимодействовать с кодом и данными вне runtime. Теперь Java может эффективно работать с нативными библиотеками и внешней памятью, заменив при этом JNI, улучшив производительность и стабильность, а также добавив возможность работать с разными видами памяти на разных платформах.

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 4.1K
Комментарии 9

Кастомный API для маршрутизации звонков: зачем и как

Блог компании Flowwow API *Бизнес-модели Облачные сервисы
Tutorial

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

Читать далее
Рейтинг 0
Просмотры 476
Комментарии 0

Войны лоббистов и развитие BIM. Часть 6: Причины спекуляций в строительной отрасли. Монополии корпораций над данными

PostgreSQL *SQL *API *CAD/CAM *ERP-системы *

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

Сегодня при обмене данными между различными 3D-7D системами мы доверяем хранение наших данных корпорациям. Для поддержания своего влияния на строительную отрасль корпорации, которым невыгодна прозрачность и интероперабельность данных, монополизировали хранение и обработку данных. Вследствие этого поставщики основных CAD и ERP решений постоянно повышают цены за пользование своими продуктами, а простые пользователи вынуждены платить “комиссию” на каждом этапе передачи данных в системах 3D-7D: за подключение, импорт, экспорт и работу с данными, которые пользователи сами создали. 

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 3.6K
Комментарии 8

Instagram-бот для улучшения личной жизни

Мессенджеры *Python *API *
Tutorial

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

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

Читать далее
Всего голосов 22: ↑13 и ↓9 +4
Просмотры 15K
Комментарии 44

Map matching, стилизация кластера и игры со шрифтами — что нового в 2GIS Kit

Блог компании 2ГИС Разработка мобильных приложений *API *Геоинформационные сервисы *

Привет! Это первый выпуск дайджеста 2GIS Kit — набора картографических, поисковых и навигационных инструментов для разработчиков.

Если о больших продуктах получается рассказать отдельными статьями на том же vc.ru (например, Mobile SDK и редактор стилей), то о каждой фиче так не получается. А фич-то много!

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

Ну-ка, что там
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 891
Комментарии 1

Java 17: Pattern Matching for switch

Программирование *Java *API *
Из песочницы

14-го сентября состоялась презентация Apple, в этот же день произошло не менее важное событие - релиз Java 17.

Среди новых фич подъехал паттерн матчинг для switch в preview моде.

История началась с того, что в jdk 16 расширили instanceof оператор, который теперь может принимать type pattern и выполнять матчинг по паттерну. Это маленькое изменение позволило упростить типичную конструкцию с проверкой на тип и последующее приведение.

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 3.9K
Комментарии 15

Работа с набором параметров листа через API nanoCAD

Блог компании Нанософт .NET *API *CAD/CAM *C# *
Tutorial

При подготовке чертежа к печати необходимо настраивать большое количество параметров: принтер, формат бумаги, масштаб, область печати и т.д.

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

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 517
Комментарии 0

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