Как стать автором
Обновить
54.14

API *

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

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

Аутентификация для WebSocket и SSE: до сих пор нет стандарта?

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

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

В статье разберем особенности аутентификации применительно к протоколу WebSocket и технологии Server-Sent Events, обсудим, какие нюансы могут быть, когда клиентская часть находится в браузере, и на что еще стоит обратить внимание, чтобы избежать неочевидных проблем.

А еще заодно поговорим про уязвимость Cross-Site WebSocket Hijacking (CSWSH) и в целом посмотрим на многие вопросы через призму информационной безопасности.

Читать далее
Всего голосов 53: ↑53 и ↓0+53
Комментарии5

REST API сервер на Bash с использованием сокетов и Apache

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

Всем привет! Ранее рассказывал о том, как создать REST API и Web-сервер на PowerShell для Windows, а также упоминал, что подобный сервер будет работать и в системе Linux, благодаря кроссплатформенной версии PowerShell Core. Безусловно, для подобных целей лучше используются специализированные серверные фреймворки или библиотеки, такие как Flask или Django в Python, но меня не покидала идея реализации похожего сервера, где описание логики будет производиться на языке одного только Bash. Приведу примеры, с помощью которых можно создать такой сервер используя сетевые сокеты netcat , socat и ncat, а также веб-сервера Apache с использованием встроенных модулей.

Читать далее
Всего голосов 20: ↑18 и ↓2+16
Комментарии3

Особенности и проблемы mock-сервера Swordfish API Emulator

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

Эта статья — продолжение истории про разработку Ansible-модулей для взаимодействий с системами хранения данных (СХД) через API, которое удовлетворяет спецификации Swordfish. Эти модули в перспективе облегчат управление парком СХД от разных производителей.

Чтобы тестировать работоспособность созданных модулей, нужен настоящий сервер СХД (или тестовый mock-сервер), который предоставляет необходимый REST API. Получить настоящий сервер от производителя СХД — сложная задача, которая требует финансовых и временных затрат на получение программно-аппаратного обеспечения. В случае open-source разработки такая опция доступна не всем командам. 

Компания SNIA, разработчик спецификации Swordfish, подумала об этом и предоставляет разработчикам свободно распространяемый mock-сервер — Swordfish API Emulator. В рамках проекта Лаборатории YADRO на базе СПбПУ Петра Великого мы протестировали его в работе. В статье расскажем, как он устроен и как с ним взаимодействовать в задачах.

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

Хватит использовать AI-плагины! Как получить доступ к LLM-преимуществам через API Jay Copilot

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

Меня зовут Алексей Петров, я solution-инженер в компании Just AI. Сегодня многие разработчики столкнулись с необходимостью внедрения LLM в свои корпоративные сервисы. В этой статье я попробую доказать, почему интеграция API в данном случае гораздо эффективнее использования AI-плагинов, а также расскажу о том, как интегрировать API Jay Copilot в бизнес-процессы на примере интеграции amoCRM.

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

Истории

Telegram Mini Apps с мгновенной оплатой

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

Инструкция, посвящённая созданию Telegram Mini Apps с вызовом окна оплаты без создания дополнительной кнопки для этого.

Telegram Mini Apps c мгновенным вызовом окна оплаты.

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

Как быстро написать API на FastAPI с валидацией и базой данных

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

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

В этой статье мы разработаем простой API с помощью самого популярного стека и FastAPI. Рассмотрим важные концепции в работе с этим фреймворком, набросаем базовую структуру проекта и развернем приложение на облачном сервере. Подробности под катом!
Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии39

Максимально простая игра на C++ (в консоли)

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

Мой выбор остановился на простецкой игре - виселице, запускаемой в консоли, которую я решил написать на С++. Здесь я хочу рассказать о том, как я её реализовал, что использовал и т.д.

Читать далее
Всего голосов 12: ↑10 и ↓2+8
Комментарии26

Коммуникация по RESTful API: синхронизируем данные с маркетплейсами

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

В статье разбирается код на Ruby и в Ruby on Rails, в частности, на примере задачи по разработке web-сервиса синхронизации данных с внешними источниками. Погружение в программное решение начинается с разбора бизнес-задачи. Через освещение реальных API с маркетплейсов OZON и Яндекс.Маркет обосновываются способы принятия архитектурных решений и способы оптимизации кода. Эта статья также является авторской попыткой раскрыть принцы SOLID при реализации логики реального бэкенд приложения по переработке структурированных данных в условиях эксплуатации стороннего REST API.

Читать далее
Рейтинг0
Комментарии1

Face-swap и анимация изображений сгенерированных Midjourney с использованием InsightFaceSwap и Pika

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

В этой статье рассматривается экспериментальный API для Discord ботов Midjourney, InsightFaceSwap и Pika.

Читать далее
Всего голосов 8: ↑5 и ↓3+2
Комментарии0

API-автотесты: как достичь наиболее полного покрытия?

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

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

Под катом мы подготовили практический шаблон, который поможет вам в этом.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии5

API-автотесты: как достичь наиболее полного покрытия?

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

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

Под катом мы подготовили практический шаблон, который поможет вам в этом.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии5

Полезные модули PowerShell. Переводчик в консоли, SpeedTest, Syslog и другие

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

Всем привет! Порой, написать графическую форму для консольного приложения может оказаться очень удобным решением, тем самым не нужно запоминать все ключи программы, особенно, если пользоваться им приходится изредка, тем самым автоматизируя работу с данным приложением в дальнейшем. Но, ситуация может быть обратной, когда приложение имеет только графический интерфейс, а вам нужно получить вывод его работы в консоли, например, для возможности передачи метрик в систему мониторинга. С тех пор как начал проводить все больше времени в консоли, заметил, что становится менее удобно переключаться на ранее привычные инструменты, лишний раз использовать мышь, держать открытыми излишние приложения или вкладки в браузере, особенно, если работаешь на удаленной машине без прямого доступа к графическому интерфейсу. У меня накопилась небольшая коллекция полезных модулей, большинство из которых написаны совсем недавно, успел привыкнуть при регулярном использовании и хотелось бы ими поделиться. Осознавая, что тенденция ухода Windows систем на территории РФ растет, тем не менее думаю еще очень много людей, кто так же как и я продолжают использовать данную систему и автоматизировать свою работу, возможно, представленные модули так же смогут пригодятся. Все модули опубликованы в репозитории на GitHub и менеджере пакетов Nuget, откуда их можно установить одной командой.

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

Телеграм-бот для беспокойных родителей

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

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

Узнать, о чём речь
Всего голосов 31: ↑31 и ↓0+31
Комментарии139

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

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

Если вы собираетесь сидеть и ничего не делать, то хотя бы делайте это правильно

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

Иногда бывает нужно, чтобы API не делал ничего. При этом важно, чтобы он не делал ничего правильным образом.

Например, у Windows есть сложная инфраструктура печати, но этой инфраструктуры нет у Xbox. Что должно произойти, если приложение попытается выполнить печать на Xbox?

Неправильно было бы, если бы функции печати выбрасывали Not­Supported­Exception. Установленное пользователем на Xbox приложение, вероятно, в основном (если не исключительно) тестировалось на PC, где печать всегда доступна. При запуске на Xbox исключение, скорее всего, не будет обработано, и приложение вылетит. Но даже если приложение попытается перехватить исключение, то, вероятно, отобразит сообщение типа «Ой. Что-то пошло не так. Обратитесь в службу поддержки и сообщите ей вот этот код ошибки».

Гораздо лучший способ «поддержки» печати на Xbox — это успешное выполнение функций печати с сообщением о том, что принтеры не установлены. При таком поведении в случае попытки печати приложение попросит пользователя выбрать принтер и отобразит пустой список. Пользователь осознает, что принтеров нет, и отменит запрос на печать.

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

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

Читать далее
Всего голосов 17: ↑15 и ↓2+13
Комментарии8

Мониторинг температуры Windows. Создание метрик, настройка InfluxDB и Grafana

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

Всем привет! Мониторинг температуры, нагрузки и других показателей системы всегда актуален, специалисты в области ИТ применяют разные подходы для реализации этой задачи, чтобы в конечном итоге визуализировать и наблюдать динамику полученных данных в максимально удобном формате. Существует много готовых решений для построения системы мониторинга, например, Zabbix, где уже из коробки присутствует огромная библиотека шаблонов по сбору данных из различных систем и визуализация в виде графиков, которые можно отобразить без излишних настроек, хотя обычно, этого недостаточно. Также часто бывают ситуации, когда требуется получить специфические показатели, их так же нужно где-то хранить и визуализировать, я же попытаюсь показать полный путь от получения таких метрик до конечной визуализации на примере сбора информации датчиков температуры Windows в минимально возможной конфигурации, чтобы сложилась общая картина данного процесса. Так как работаю администратором Windows систем, и на протяжении нескольких лет ежедневно использую PowerShell в работе, буду применять именного его (вы так же можете найти много полезных заметок по данному языку в моем репозиториями на GitHub). Для начале получим нужные нам метрики, настроим отправку этих метрик в базу данных InfluxDB, создадим службу Windows и отобразим датчики температуры на панели в Grafana.

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

Работаем с HTTP API: разбор частых проблем и методы их решения

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

Время идёт, технологии развиваются, а проблемы, связанные с использованием API, вызывают у многих разработчиков всё те же сложности, что и десятки лет назад. Между тем, рост числа сервисов, которые взаимодействуют друг с другом с помощью данного способа, день ото дня только увеличивается, и неумение надёжно, качественно и безопасно работать с API может привести к опасным сбоям или поломке разрабатываемой вами системы.

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

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии4

Еще один кейс на PHP. Скачиваем базу данных из открытого API

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

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

Затем, мы создадим шакалу загрузки, или прогресс‑бар, как ее еще называют, чтобы отслеживать процесс скачивания. Экспонатов много, каталог большой: «весит» он более 5 Гб. Без индикации загрузки пользователь может недоумевать, почему ничего не происходит и консоль просто висит долгое время. Наконец, скачаем файл из API, который потом можем разобрать по таблицам своей базы в том виде, в котором понадобится.

Читать далее
Всего голосов 16: ↑8 и ↓80
Комментарии9

Большой API для экспериментов и front проектов или памятка о том, как я создавал проект

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

Это моя первая статься, а потому, как мне кажется, будет хорошим шагом начать с того, кто я такой. Меня зовут Юрий, я учусь на программиста и попутно сам стараюсь изучать всё возможное про мою специальность, а моя специальность - это .Net. Влюбился в него и вцепился с первого взгляда, прям как к php слова "скоро умрёт".Несколько месяцев назад, а именно в сентябре, я решил, что необходимо начать делать какой-нибудь большой учебный проект для закрепления моих знаний да и для изучения новых. Я вообще отношу себя к практикам, обожаю сначала что-то делать, а только потом читать. А вдруг я и сразу всё хорошо сделаю, и потом даже читать дополнительные источники не придется :). Но это почти никогда не бывает, так что не пишите в комментариях, что я упускаю важный момент в изучении. Если возвращаясь к проекту, то сделать его я хотел, но я считал себя истинным бэкендером: притрагиваться к фронденту я вообще не слишком хотел. А потому я решил обратиться к своим друзьям программистам, чтоб хоть кто-то занялся фрондент частью. К счастью такой человек у меня был: React разработчик. И также ещё один бэкендер на C#. Идея командой разработки им понравилось, я взял проект из своего списка проектов (да, у меня такой есть) и начали разработку.

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

Теперь о самом проекте, мы дали ему названия Author Verse. Его фишка в том, что пользователи могли бы создавать свои книги, вставляю в него любой контент, то есть, что из него обычной книги можно было бы сделать легко обычную книгу из текста, комикс из картинок, мангу, аудиокнигу, манга-аудиокнига-комикс сразу??? или придумать вовсе свой жанр. И главная фишка: писатели могли бы делать разветвление сюжета на любую часть главы, на любую другую часть из других глав своей книги и, наверное самое прикольно, но которое пришло мне в голову уже на последних этапах разработки, это ответвлению в другие книги. Конечно, раз мы говорим о том, что могут быть ссылки на другие книги, то все книги на сайте должны быть бесплатны.

Стать умнее
Всего голосов 10: ↑8 и ↓2+6
Комментарии8

Айтишник женился на девушке, с которой общался ChatGPT. А как научить бота общаться с клиентами?

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

Привет, Хабр! Меня зовут Алексей, в Пиробайте я разрабатываю мобильные приложения на Flutter. Недавно я зашел в Twitter и не знал — радоваться мне или плакать, ведь эпопея об айтишниках и кринжовых тредах получила новый виток развития. 

Если вкратце, парень рассказал о том, что женился на девушке, с которой общался не он, а ChatGPT. И это было не просто пару сообщений, а поставленная на поток схема, где чат-бот искал, общался и звал на свидания тысячи девушек из Тиндера. Пока не нашел ту единственную, на которую перенастроил бота. А потом, слава Богу, начал общение самостоятельно. На других же девушках он зарабатывал реферальным путем (приводя их в разные компании). What a story, Mark!

История хоть и интересная, но в целом непонятно, зачем о ней писать здесь… Или не совсем? Давайте разбираться.

Читать далее
Всего голосов 15: ↑2 и ↓13-11
Комментарии4

Миграция микросервисной архитектуры на API Gateway

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

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

Читать далее
Всего голосов 16: ↑15 и ↓1+14
Комментарии2
Изменить настройки темы

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