Обновить
45.17

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

О создании API

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Стать умнее

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

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

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

Читать далее

Разбор переменных и скриптов в Insomnia

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

Автор: Надежда Дудник

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

Сейчас хочу поделиться разбором динамических переменных и показом примера скриптов с использованием Chains.

Читать далее

«16+» или делаем шаблон страницы в XWiki на примере спецификации API

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

Пусть вас не смущает надпись: «16+» в заголовке. В статье не будет ни слова о безудержном кутеже с куртизанками за игрой в блэк-джек.

Просто я решил очередной статьей отпраздновать выпуск в свет 16-й версии XWiki – «open-source аналога Confluence» (по мнению её разработчиков).

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

Статья скорее рассчитана на новичков, поэтому в процессе я немного расскажу об XWiki и наиболее простом способе её установки.

Читать далее

Простой GPT-ассистент в Telegram на базе Яндекса и Node.js

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

Всем привет! Это моя первая публикация на хабре, поэтому буду благодарен за любую обратную связь, которая поможет мне писать ещё лучше.

В статье вас ждёт "сборка" очень простой связки из распознавания и синтеза речи, а также запросов в модель YandexGPT на Node.js. Наш телеграм бот будет получать голосовое сообщение, а затем распознавать его, скармливать в модель GPT и синтезировать полученный ответ в голосовое сообщение.

Хочется начать с небольшого предисловия. В ходе написания этого простейшего решения я потратил кучу времени на попытку интегрироваться с популярным OpenAI ChatGPT, но мои нервы вышли из чата (обход блокировки, HTTPS прокси и т.п.), поэтому я перешёл к Яндексу. Он встречает нас дружелюбной консолью, понятной документацией и грантом на тестирование. В целом, если гранта по каким-либо причинам нет, то мне на все тесты хватило 20 рублей.

Читать далее

Топ 5 моментов при разработке бота ТГ на R, на Serverles functions Яндекса

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

Возьмем пример: Как создать бота в Telegram

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

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

Читать далее

Fitter —  сшиватель API/Website's.  Большое обновление

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

Добрый вечер всем!

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

Итак, что появилось:

Читать далее

Коллекция утилит NestJS-mod для унификации приложений и модулей на NestJS

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

Коллекция утилит NestJS-mod предназначена для унификации приложений и модулей NestJS, а также представляет новые логические возможности разделения обязанностей между модулями (System, Core, Feature, Integration, Infrastructure).

Читать далее

Cache API — кэшируем данные на стороне клиента

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

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

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

Читать далее

Учимся создавать простых ботов или туториал по библиотеке TeleBot

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

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

Бегу изучать ботов

Python и чистая архитектура…

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

Всем привет! Сегодня я хочу поделиться своими опытом разработки на различных языках программирования и размышлениями касаемо проектирования серверных приложений. Речь пойдет про много обсуждаемую в последнее время чистую архитектуру в рамках языка python. Казалось бы, по заветам Роберта Мартина мы не должны зависеть от инструмента(зачастую под этим понимают фреймворк или библиотеку), однако это порождает множество ошибок и просто небольших неточностей в проектировании сервисов и даже выборе языка программирования.

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

Читать далее

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

Telegram показывает удаленные сообщения

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

Несколько дней назад я обнаружил, что Telegram приложение на Windows показывает давно удаленные чаты. При том, что их не было видно ни на телефоне, ни в Linux клиенте. Я поделился этим с друзьями, которые увидели то же самое.

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

Я начал исследовать «удаленные чаты» по API, и заметил, что у всех них проставлен флаг «deactivated», и присутствует параметр migrated_to. Документация Telegram API прямо говорит, что эти чаты повысили уровень. Кроме того, история переписки обычно обрывалась добавлением участников или инициализацией видеоконференции.

Читать далее

Исследование безопасности tRPC: Охота за уязвимостями в современных API

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

В этой статье я хочу рассказать о своем исследовании, посвященном tRPC. Сначала мы рассмотрим концепции tRPC, а затем перейдем к анализу атаки приложения tRPC.

Читать далее

Некоторые мысли в связи с выходом новой версии «МойОфис» версии 2.7 и документации по API надстроек

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

Прошло полгода, как был опубликован цикл моих статей по поводу проблем разработки, и как следствие — способов хоть какого то решения проблем в плане их обхода. Одной из моих претензий к фирме «Новые облачные технологии» (далее НОТ), была крайне невнятная документация к API по разработке своих собственных расширений. С той поры, было выпущено 2 новых версии самих редакторов, и к каждой из них, было так же выпущено обновлённое руководство программиста. Если в версии 2.6 изменений можно сказать я не обнаружил, по сравнению с предыдущей версией 2.5, то вот намедни решил посмотреть, что же изменилось для версии 2.7, которая выпущена незадолго до нового 2024 года. И не скажу, что меня особо порадовали изменения в документации (и тем более в API), но в целом — вполне видна работа, хотя бы в направлении более внятного изложения идей заложенных программистами НОТ, в вопросах использования их API. Далее, я по пунктам изложу что я заметил ценного, и в конце выскажу своё сугубо субъективное мнение.

Читать далее

Как мы обеспечиваем безопасность прикладных API с помощью Platform V Synapse

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

Привет, Хабр! Я Наталья Грачева, владелец продукта в СберТехе, ведущий руководитель ИТ-направления. Мы с командой развиваем продукт Platform V Synapse — децентрализованную платформу для задач интеграции. Я расскажу, почему важно обеспечивать безопасность API прикладных решений и как мы помогаем командам разработки делать это самостоятельно, с помощью специального инструмента в составе нашего продукта.

Читать далее

Undocumented endpoint или попытки борьбы с имитацией активности «пользователя»?

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

По заявлению ВКонтакте, у метода wall.repost нет возможности отложить репост и появление данной функции в будущем не планируется. Но этот функционал реализован при использовании социальной сети непосредственно оператором.

Несправедливо!

keep digging

Первый в мире реально работающий отдел нейро-сотрудников

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

Наш стартап по созданию no-code платформы нейро-сотрудников на базе ChatGPT (и других LLM) наконец-то добрался до очень важного рубежа:

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

Для данной статьи мы выбрали в качестве пример отдел SMM, задача которого продвигать ваш Телеграм канал.

Читать далее

10 специфических вопросов по REST API на техническом собеседовании по вакансии системного аналитика

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

Привет, Хабр! Трендом в ИТ стало расширение объема знаний и навыков за счет смежных компетенций. К примеру, углубленное владение инструментарием REST API, которое обычно ассоциируют с разработчиками, может быть и частью работы системного аналитика. Эта статья — набор практических задач по REST API, специально подготовленных для системных аналитиков с высоким уровнем грейда.

Читать далее

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