Обновить
128K+

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

О создании API

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

api‑contract‑check — библиотека для генерации валидаторов из TS‑кода и проверки API‑запросов

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

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

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

Валидировать

Новости

Claude и GPT для компании из России в 2026 году: счёт, закрывающие документы и реальная цена токена

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

Личная подписка сотрудника на чужую карту, правило Anthropic про 50% владения, НДС налогового агента при покупке у иностранца и курс доллара, спрятанный в цене посредника. Разбираю по первоисточникам, что нужно компании для оплаты моделей по счёту и как считать реальную цену.

Читать далее

Я считал SKILL‑ы бесполезной тратой токенов, пока не написал свой

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

Скажу честно: я не понимал, зачем нужны SKILL-ы для LLM-агентов. Вот с MCP все понятно: полезная вещь, с помощью которой можно дать LLM доступ к базе данных или к Figma. Единственный недостаток: чтобы не тратить много токенов, желательно не подключать сразу 30 MCP-серверов. И вообще, лучше отключать лишние и подключать только те, которые действительно нужны для задачи. В этом свете SKILL-ы казались мне бесполезным оверхедом, который жрет токены как не в себя. В TikTok часто видел россказни в духе: подключи такой SKILL или сразу целую пачку, и будет тебе счастье. У меня сразу возникала мысль: если подключить их все, лимиты по подписке будут заканчиваться не к обеду, а уже утром.

Читать далее

Сколько на самом деле стоит запрос к LLM: формулы, кэш промптов, reasoning-токены и длинный контекст

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

Обычно стоимость запроса к языковой модели прикидывают так: открывают прайс, видят «вход столько-то долларов за миллион токенов, выход столько-то», умножают на ожидаемые объёмы и на этом заканчивают. Потом приходит счёт, и он отличается от прикидки в разы. Причём бывает и так, что счёт меньше: кто-то незаметно для себя попадал в кэш. Я сам несколько раз на этом обжигался. В итоге я сел и разобрал, из чего на самом деле складывается цена одного вызова. Какие числа модель возвращает в ответе и как их правильно читать. Почему ответ в три строки может стоить как страница текста. Когда кэш промптов экономит деньги, а когда только добавляет расходов. И как четыре лишних тысячи токенов во входе могут удвоить цену запроса.

Читать далее

GPT-6 Astra у пяти зарубежных сторонних API-роутеров: сравнение ответов с официальным API

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

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

При работе с такими платформами возникает ключевой вопрос: совпадают ли их ответы на одну и ту же задачу с ответами официального API?

Я сравнил GPT-6 Astra у OrcaRouter, TeamoRouter, OpenRouter, Token Harbor и NaraRouter на 30 задачах с независимо проверяемыми ответами. Для каждой задачи сначала вызывался официальный API OpenAI, затем по очереди пять платформ и в конце ещё раз официальный API. Чтобы говорить о сопоставимом качестве в рамках этой проверки, все 30 ответов платформы должны совпасть с обоими официальными ответами. Тогда более низкая цена API имеет практический смысл.

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

Читать далее

Почему я собираю лидов в Airtable

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

Больше миллиона строк, 161 таблица и гигабайт данных за пять лет. А потом форма просто перестала принимать ответы: база упёрлась в лимит записей по тарифу.

Читать далее

crm.item.list заблокирован, а портал работает: откуда в Битрикс24 берётся 429 OPERATION_TIME_LIMIT

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

Выгрузка сделок из Битрикс24 годами работает без проблем, а потом начинает тормозить и возвращать HTTP 429. Увеличение пауз между запросами не помогает, хотя остальные методы REST API продолжают отвечать как обычно. Разбираемся, как устроен лимит OPERATION_TIME_LIMIT, куда уходит серверное время и как ускорить выгрузку в сотни раз.

Разобраться с лимитами

Угадайте HTTP-статус по жизненной ситуации

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

Что общего у сервера и интеллигентного человека? Есть много способов послать собеседника… да хотя бы выждать паузу. В случае сервера каждый способ закодирован трёхзначным числом. Разработчики и тестировщики видят эти числа каждый день, но 502 и 504 путают даже опытные люди.

А что, если представить HTTP-статусы в виде бытовых ситуаций? Ниже будет список из 12 вопросов, в каждом вопросе - описание ситуации и четыре кода на выбор. Ответ с объяснением спрятан под спойлером. Считайте правильные ответы и в конце узнаете ваш статус.

Вперёд!

Headless‑браузер без браузера: 5 408 байт

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

Или история о том, как 5408 байт обфусцированного JavaScript, прилетающих в HTTP-заголовке, превращаются в свободный доступ к GPT, Claude, Mistral и генерации картинок если построить браузерный манекен на чистом JS.

Читать далее

Получение API_ID и API_HASH Telegram, решение ERROR на my.telegram.org из России

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

Для работы с Telethon или Pyrogram нужны api_id и api_hash, но my.telegram.org может не открываться или выдавать ERROR при создании приложения. В моём случае помогло сочетание VPN с сервером в Казахстане и временной записи в файле hosts. Показываю пошагово, как проверить подключение, настроить hosts и получить параметры Telegram API.

Читать далее

api2app: Использование совместно с ComfyUI

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

В этом уроке я расскажу как можно использовать ComfyUI в роли API и быстро создать веб-приложение с доступом из мира. В приложении я смогу оперативно настраивать интерфейс под меняющиеся задачи без программирования.

Читать далее

Сколько инструментов должно быть у MCP-сервера? Я измерила от 5 до 100 в Claude Code, Codex и Gemini

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

Почти все советы по проектированию MCP-серверов сводятся к одному: держите инструментов поменьше. Я проанализировала 91 источник. 38 из них советуют сокращать число инструментов, 20 называют конкретную цифру (чаще всего 10–20), и только 10 вообще измеряли, как число инструментов влияет на точность.

Тогда я измерила сама: 1932 прогона на топовых моделях и ещё 1404 на самых дешёвых, в трёх клиентах (программах, в которых работает агент: Claude Code, Codex CLI и Antigravity), от 5 до 100 инструментов. На сегодняшних топовых моделях точность не сдвинулась: ни на 100 инструментах, ни с похожими друг на друга названиями. На дешёвых почти не сдвинулась, но именно там впервые появились вызовы не того инструмента. Меняется стоимость, и насколько сильно, решает клиент, а не модель. И ещё одно: ни один из трёх клиентов по умолчанию не кладёт схемы инструментов в промпт. Claude Code и Antigravity показывают модели только названия инструментов, а Codex ищет их определения кодом. Поэтому теперь модель по названию инструмента решает, какие описания ей прочитать, прежде чем выбрать.

Читать далее

Как автоматизация в ЦОД помогает строить и динамично менять инфраструктуру облака

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

Привет, Хабр! Меня зовут Антон Бушный, я тимлид инфраструктурных инженеров в K2 Cloud. В этой статье мы поговорим про железо — о нем, как нам кажется, говорят непростительно мало. А ведь любое приложение, сервис, Kubernetes-кластер не существует в вакууме — он обязательно работает на физической инфраструктуре. Речь пойдет о концепции построения большой инфраструктуры, но конкретные модели серверов и замеры производительности сравнивать не будем, разговор верхнеуровневый.

Статья будет состоять из двух блоков. Первый — про физику и то, как с ней взаимодействуют инженеры. Второй посвящен автоматизации и тому, как она помогает в работе с инфраструктурой. За прошедшие годы мы выработали много полезных практик в обеих областях и хотим ими поделиться.

Читать далее

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

Как, на мой взгляд, должна выглядеть лучшая стандартная библиотека на C++

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

Не секрет (для тех, кто меня читает), что мои вкусы в области языков программирования весьма странные как для энтузиаста, так и для профессионала. В нескольких моих постах, посвящённых Go, я пишу, что программировать на этом языке — всё равно, что завтракать овсянкой на воде.

Чтобы держать марку, расскажу и ещё об одном языке, программировать на котором — всё равно, что разбавлять утренний кофе самогоном. Естественно, речь пойдёт о C++.

Если вы из тех мучеников, которым довелось работать с C++ профессионально, то вы знаете, насколько в самом деле плоха стандартная библиотека C++. С чего бы начать?

Читать далее

Прорастание в собственный контур

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

Часть один

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

Один, два, три

Читать далее

Где мне пригодился OpenClaw, а где обычный код оказался лучше. 3 истории из практики

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

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

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

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

Читать далее

Passkeys в продакшне: как мы выкинули пароли и внедрили Face ID за 3 дня. FastAPI + Next.js, полный код

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

Passkeys — это не будущее. Это уже работает в каждом банковском приложении на вашем телефоне. Альфа-Банк, Тинькофф, Сбер — давно. GitHub, Apple, Google — тоже. А ваш веб-сервис до сих пор просит придумать пароль с заглавной буквой, цифрой и спецсимволом. И потом ещё «восстановить пароль» раз в месяц.

Читать далее

Джеффри Хантли: агенту хватит --help, если CLI сделана хорошо

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

Джеффри Хантли о споре «MCP против CLI». По его мнению, компании с инструментами для разработчиков делятся на S-tier и F-tier, и решают это веса моделей: с GitHub модели работают через gh CLI без всяких скиллов и MCP. Новичкам он советует вылизывать --help под агентов, оптимизировать документацию под агентский веб-поиск и договариваться с лабораториями о включении документации в обучение.

Читать далее

Как опубликовать внутренний API из DMZ, если соединения в LAN запрещены: пять подходов, которые мы проверили

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

Как опубликовать внутренний API из DMZ, если соединения в LAN запрещены: пять подходов, которые мы проверили

Все пять схем мы собирали на NEOMSA APIM, российской платформе управления API от Neoflex. Сводка по вариантам:

Читать далее

С системой, которую нельзя менять, не интегрируются. Её можно только зеркалить

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

Ты не владеешь источником — значит, не владеешь временем. Как поллер по updated_at молча теряет строки, почему exactly-once это свойство твоей записи, и почему сверка важнее потока.

Читать далее
1
23 ...