Обновить
45.17

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

О создании API

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

JWT-аутентификация при помощи Spring Boot 3 и Spring Security 6

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

Переход от базовых приложений к более сложным требует использования Spring Security для обеспечения безопасности. Новая версия, Spring Security 6, изменяет некоторые базовые реализации, а русскоязычных материалов на эту тему очень мало. В этой статье мы рассмотрим JWT-аутентификацию и авторизацию с помощью Spring Boot 3 и Spring Security 6, чтобы помочь начинающем разработчикам разобраться и начать пользоваться базовым функционалом этой библиотеки. Цель данной статьи - показать, как использовать JWT-аутентификацию с API-интерфейсами.

Читать далее

Как вернуть себе потерянные (или украденные из-за санкций?) умные функции стиральной машины Bosch

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели131K

У меня была стиральная машина Bosch последней линейки, купленная ещё в 2022 году, но когда недавно я захотел познакомиться с её умными функциям в мультибрендовом приложении Home Connect от Bosch/Siemens, то обнаружилось, что способ подключения стиралки к приложению, описанный в инструкции, не работает.

После небольшого поиска в интернете узнал, что в апреле 2022 года приложение просто перестало работать в России безо всяких уведомлений. Проблемы настигли обладателей умной бытовой техники Bosch, Siemens и других брендов: Gaggenau, NEFF, Thermador, Balay, Constructa, Pitsos и Profilo.

Я почитал различные эмоциональные отзывы, но это не помогло мне понять как сделать так, чтобы стиралка заработала с моим локальным умным домом Home Assistant с открытым исходным кодом.

Обходим запреты восстанавливаем функционал

Плагин на LibreOffice с Gigachat API

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.5K

В этой статье пойдет речь о решении, позволяющем упростить написание текстов при работе с офисным пакетом LibreOffice. Мы разработали плагин, который позволяет работать с текстом с помощью большой языковой модели GigaChat от Сбер.

Читать далее

KrakenD — новый друг для вашего backend

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

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

Читать далее

Разделяй и властвуй: как мы адаптировали API монолитного приложения для нужд публичных запросов и внешних интеграций

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

Привет, Хабр! Меня зовут Ринат. Я руководитель отдела backend-разработки компании AppEvent. 

Представьте: к вам в компанию обратились «Сервис А» и «Сервис В». При сотрудничестве обоих сервисов с вашей компанией нужно открыть часть функционала «Сервис А» и часть функционала «Сервис В». У «Сервис А» не должно быть доступа к функционалу для «Сервис В».

Эту задачу нужно реализовать в условиях сложной бизнес-логики и с монолитным приложением на {не самый популярный ЯП}. 

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

Читать далее

Торговый бот на Python с нуля (с использованием Binance API), часть 2

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели44K

Продолжение первой части статьи о создании торгового бота на python с нуля с использованием Binance API!

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

Читать далее

Введение в SQL & СУБД на примере доступа к данным через Python

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели23K

Краткое введение в SQL (+СУБД) на примере доступа к данным через Python. Я начинающий Data Scientist и решил написать статью где будет базовое введение в sql, а также как извлекать данные через разные способы (SQLalchemy, Requests).

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

REST API/Web сервер на PowerShell

Уровень сложностиСложный
Время на прочтение12 мин
Охват и читатели13K

Все привет! В продолжение статьи о возможностях PowerShell, хочу поделиться несложной реализацией создания REST API и простого Web-сервера, используя только PowerShell на базе класса .NET HttpListener. Такая реализация позволяет настроить endpoint (конечные точки) для обработки GET и POST запросов, которые принимают параметры в заголовке запроса, использовать Basic-авторизацию (на основе Base64), обрабатывать любые коды возврата, а так же без лишнего кода, отдавать информацию в разных форматах: json, xml, html, csv.

https://habr.com/ru/articles/782592

Пишем свой GraphQL клиент на Python

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

Эта статья родилась из опыта использования GraphQL в проекте одного из крупнейших аэропортов РФ. Проект посвящен созданию системы по автоматизации обслуживания рейсов и управлению ресурсами аэропорта в реальном времени (MRMS система).

Проект реализован на базе микросервисной архитектуры, где модель данных аэропорта представлена в виде GraphQL API, а сервер, предоставляющий API, написан на java. Клиентами этого API являются не только web/mobile, но и сервисы на java, golang и python.

Статья написана как пошаговое руководство по созданию своего GraphQL клиента на python с нуля, где попутно автор демонстрирует проблемы, возникающие на этом пути. Использовать реальную GraphQL схему аэропорта не представляется возможным, поэтому для наглядности будем использовать открытую схему github GraphQL API.

Читать далее

OpenAPI станет проще: готовится версия 4.0

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


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

До появления расширения OpenAPI DevTools проектировать схему OpenAPI приходилось вручную. Хотя это было непросто, оно того стоит в любом случае. Недавно мы в RUVDS переделали свой API под данный стандарт — и увидели, насколько это эффективно и полезно для всех пользователей и разработчиков, которые обращаются к серверным API.

Сейчас в разработке находится четвёртая версия OpenAPI. Она станет проще и универсальнее, то есть подойдёт даже для тех HTTP API, для которых не годится текущая версия 3.0 (3.1.0).
Читать дальше →

Кастомизация бессерверных функций без применения промежуточного ПО

Время на прочтение10 мин
Охват и читатели1.2K
Когда пишешь код для серверного API, часто требуется проделывать схожие шаги: аутентифицировать пользователей, уточнять их роли и выставленные флаги функций, т.д. В большинстве фреймворков для бэкенда безупречно организовано взаимодействие с обработчиками запросов. Часто такой софт называют «промежуточное ПО» (middleware), поскольку он находится между кодом приложений и кодом системы. В этой статье я аргументирую, почему стоит обходиться как можно меньшим объёмом промежуточного ПО, и рассказываю, как при этом не сойти с ума.

Зачем он нам вообще может понадобиться?


На первом этапе работы можно заметить, что каждая функция у вас начинается с множества повторяющихся строк, например:
Читать дальше →

Pixel Combats Api

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

Всем привет, в этой статье я расскажу о основах Api, под игру Pixel Combats 2. Тут будет написано исключительно о моддинге, то есть написание кода. Подробностей как зарегистрироваться, и тд тут не будет. Эта статья написана для тех, кто уже умеет публиковать свой режим в игре.

Читать далее

Telegram бот для доставки torrent контента с телефона до телевизора

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

Всем привет! Этой мой первый пост на Habr (да и вообще где либо, за исключением GitHub). Хочу поделиться работой, на реализацию который у меня ушло около месяца, но тем не менее сейчас используя ежедневно и планирую развивать в дальнейшем. Задумка была таковой, что бы донести любой (бесплатный) контент до телевизора используя под рукой только телефон, например, если я еду в метро или нет желания (вставать с дивана) и возможности подойти к компьютеру. На самом деле причина реализации сей творения чуть глубже и проще, под управление я передал дело подбора контента на повседневный вечер супруге. За источник контента отвечает трекер Кинозал, который, к слову, я использую уже 4 года и меня он устраивает во всем.

Читать далее

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

Интеграция системы «Антифрод» в работу операторов: требования к программному обеспечению и эффективность API

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели6.8K

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

Читать далее

Анализ безопасности приложений, использующих GraphQL API

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

Привет! Меня зовут Даниил Савин. Летом я участвовал в программе стажировки для безопасников от Бастион и в процессе глубоко исследовал тему безопасности приложений, использующих GraphQL. Так появилась статья, из которой вы узнаете:

• какие встроенные функции есть у GraphQL;

• как тестировать GraphQL API;

• какие инструменты использовать;

• и как обходить различные защитные механизмы.

Читать далее

Идемпотентность: больше, чем кажется

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

image


Друзья, всем привет! Идемпотентность в проектировании API — не просто формальность. Это свойство, часто рассматриваемое как способ получения одинакового ответа на повторяющийся запрос, на самом деле означает гораздо больше...

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

Композиционное тестирование: новый подход к качеству IT-продуктов

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели5.2K

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

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

Читать далее

Подключение Google Gemini Pro к проекту на Python

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

Несколько дней назад я решал задачу подключения Yandex GPT, и главной сложностью там было освоение Yandex Cloud Console. В остальном API - вылитая LLaMa 2.

С Google Gemini история иная. Документация консоли содержит те самые вставки "New to Google Cloud", отсутствие которых вдохновило меня писать про Yandex GPT. При работе с консолью есть нюансы, их и выделим ниже по тексту. Но в целом, можно просто следовать документации, и всё получится.

В Google Cloud теперь доступны два пространства, с которых можно начинать: Vertex AI Studio и Model Garden. Первая предназначена для экспериментов с моделями и отладки промптов. А вторая - библиотека моделей, где всего их на сегодня 56, среди них упомянутая LLaMa 2, PaLM 2, знаменитый тем, что на нём работет Google Bard и, возможно, скоро мы увидим прорыв в медконсультировании Med PaLM 2, Gemini Pro. Мы сегодня коснёмся только Gemini Pro Vision, поскольку именно она заявлена как главный прорыв.

Подключить модель просто, весь процесс состоит из четырёх шагов.

Читать далее

Безопасность API веб-приложений

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

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

Это инженерный отдел по динамическому анализу Swordfish Security. В предыдущих статьях мы описывали плагин для OWASP ZAP, рассказывали, как сканировать приложения с помощью инструмента Burp Suite Pro и настроить автоматическую авторизацию в DAST-сканере. Сегодня мы обсудим, на что можно обратить внимание при проверках API веб-приложения на безопасность. Обозревать будем со стороны практики динамического анализа, а в отдельной статье поделимся соответствующими инструментами. Поехали!

Читать далее

Автоматизированное формирование меню надстройки для nanoCAD

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

Разработчики программных решений для nanoCAD, имея потребность создать для своего плагина меню (здесь и далее под словом «меню» будем понимать вкладки и кнопки в ленточном и/или классическом интерфейсе программы), сталкиваются со следующими проблемами:

Читать далее

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