Hacker News Digest

Тег: #rest

Постов: 9

Postman which I thought worked locally on my computer, is down (status.postman.com) 🔥 Горячее 💬 Длинная дискуссия

by helloguillecl • 20 октября 2025 г. в 15:40 • 421 points

ОригиналHN

#postman#insomnia#curl#rest#api#http#vscode#jetbrains

Комментарии (198)

  • Пользователи жалуются, что Postman и другие инструменты стали требовать онлайн-авторизацию и не работают оффлайн, что стало причиной перехода на альтернативы.
  • Популярные альтернативы включают Insomnia, Bruno, Yaak и httpie, которые предлагают оффлайн-функциональность и не требуют входа в систему.
  • Некоторые разработчики предпочитают использовать встроенные инструменты IDE, такие как VS Code REST Client или JetBrains HTTP Client, или просто curl.
  • Обсуждение также коснулось того, что некоторые инструменты могут быть слишком сложными для простых задач, в то время как другие могут не хватать функциональности для более сложных сценариев.
  • Некоторые участники упомянули, что выбор инструмента может зависеть от размера команды, сложности API и необходимости коллаборативной работы.

A Web Framework for Zig (jetzig.dev)

Jetzig — веб-фреймворк на Zig, MIT-лицензия.
Маршруты по файлам, REST из коробки.
Шаблоны Zmpl: лейауты, partials, статика на этапе сборки.
JSON-ответ по умолчанию.
Движок http.zig = высокая скорость.
CLI создаёт проекты и компоненты.
Цепочка middleware, встроенная поддержка htmx.
Куки, сессии, заголовки — без кода.
ORM JetQuery для баз данных.
Сообщество в Discord, исходники на GitHub.

by nivethan • 11 сентября 2025 г. в 17:42 • 123 points

ОригиналHN

#zig#jetzig#http.zig#htmx#orm#jetquery#rest#json-rpc

Комментарии (16)

  • Jetzig — новый Zig-фреймворк для веба: single-бинарник, статическая типизация, маршруты через структуры, напоминает Django.
  • Название играет по-немецки: «jetzig» ≈ «сейчас-вроде» (now-ish), как у Zeit/Now.sh.
  • Под капотом http.zig, значит пока только HTTP/1.1; RESTful на словах, но по факту JSON-RPC.
  • Видео-вводилка уже есть, комьюнити хвалит «правильные» решенийки, но докопались до баннера куки на localhost.
  • JetQuery даёт compile-time безопасность имён полей — если переименуете член структуры, код не соберётся.

Taking Buildkite from a side project to a global company (valleyofdoubt.com)

  • Кит Питт — австралийский разработчик, отец троих детей, бывший фокусник. Считает себя не предпринимателем, а изобретателем: «ценность идеи = кто-то заплатил за неё».

  • Buildkite родился как побочный проект: Кит писал e-mail-API и понадобился собственный CI. Вечерами довёл прототип до продукта, подключил PIN Payments (первый в AU простой REST-эквайринг) и выложил на $5/30/100.

  • Первый «чужой» клиент из Европы (Moneybird) показал: продукт внешне нужен. Когда знакомая компания сама докинулась до $500/мес, Кит поверил, что выживет.

  • Первые годы — вечера и выходные, пока жена училась; днём — работа в Envato. Рост шёл медленно, но MRR удваивался каждые 6 мес.

  • 2016 — деньги кончились, зарплаты не хватало. Кит вернулся к инвесторам, поднял раунд и стал CEO полный ставка. Пришлось учиться управлять, нанимать и строить распределенную команду.

  • Голос продукта выработали через публичный блог: честные посты о проблемах и фичах привели трафик и доверие разработчиков.

  • Сегодня Buildkite — глобальный CI/CD с клиентами вроде Shopify и Slack; офисы в Мельбурне и SF. Кит ушёл с поста CEO, но остался техническим лидером и продолжает «изобретать».

by shandsaker_au • 07 сентября 2025 г. в 22:03 • 76 points

ОригиналHN

#buildkite#ci-cd#rest#cloud#startups#distributed-teams#saas#shopify#slack#llm

Комментарии (9)

  • Buildkite хвалят за гибридную архитектуру (SaaS + свои агенты), декларативные пайплайны и приятный UI.
  • Малые компании уходят: цены взлетели, фокус сместился на крупные enterprise.
  • Меньшие стартапы успешно использовали Buildkite + дешёвые серверы (Hetzner) и Knapsack Pro для параллельных тестов.
  • Основатель признался, что привлёк $28 млн раунда, «чтобы купить дом» — вызвал улыбку.
  • Некоторые разработчики считают ИИ-ассистентов вредными для глубокого понимания задачи: «поверхностный флирт» вместо погружения.

The “impossibly small” Microdot web framework (lwn.net)

Microdot: крошечный веб-фреймворк для всего

Мигель Гринберг, автор Flask Mega-Tutorial, представил Microdot — мини-фреймворк, работающий и на CPython, и на MicroPython: от IoT до облаков.

Зачем?
Зимой 2018-го в Ирландии Мигель столкнулся с «умным» отоплением, которое погрешало на ±3 °C. Он отключил термостаты, поставил на каждый этаж плату с MicroPython и датчиком (±0,5 °C) и сам включал/выключал нагрев.
Чтобы с дивана видеть температуру и статус, ему нужен был веб-сервер, но Flask и Bottle на MicroPython не лезли. Поэтому он написал Microdot — «Flask в миниатюре».

Фишки

  • одна папка, ~1500 строк, нулевые зависимости
  • маршруты, шаблоны, cookies, WebSocket, SSE, CORS, SSL, Basic/Digest-аутентификация, тест-клиент
  • копирует API Flask: @app.route, request.args, jsonify, abort, before_request
  • работает на ESP32, Raspberry Pi Pico, обычных серверах
  • ставится pip install microdot (CPython) или mip install microdot (MicroPython)
  • опциональные плагины: microdot-session, microdot-cors, microdot-websocket, microdot-jinja, microdot-asyncio

Код

from microdot import Microdot
app = Microdot()

@app.route('/')
async def index(req):
    return {'temp': 22.5, 'heating': False}

app.run(port=80, debug=True)

Размер
ESP32: 70 КБ свободной ОЗУ остаётся после загрузки MicroPython + Microdot + приложение.
CPython: ~1 МБ venv.

Кому

  • хобби-IoT: датчики, реле, роботы
  • встраиваемые системы: промышленные контроллеры, автономные датчики
  • прототипы: быстро поднять REST, потом перейти на Flask/FastAPI
  • обучение: Flask-разработчики учатся за пять минут

Где
GitHub: github.com/miguelgrinberg/microdot
Документация: microdot.readthedocs.io
PyPI: pip install microdot

by pykello • 07 сентября 2025 г. в 05:38 • 180 points

ОригиналHN

#microdot#micropython#cpython#iot#flask#websockets#rest#esp32#raspberry-pi-pico#python

Комментарии (50)

  • Microdot — это 765-строковый Python-фреймворк, который работает и на CPython, и на MicroPython; предназначен для веб-серверов на IoT-устройствах (ESP32 и др.).
  • Автор @miguelgrinberg подтвердил, что расширения (шаблоны, сессии) опциональны и почти не требуют зависимостей; версия 2 внесла ломающие изменения.
  • Комментаторы спорят о слове «impossibly small»: кто-то считает 765 строк нормальным минимумом, кто-то — перебором; сравнивают с Bottle, Rails 0.x и FW/1.
  • Пользователи делятся опытом: SSE + htmx для живых GPIO-индикаторов, бенчмарки RPS, проекты термостатов и садовых сенсоров.
  • Упоминаются альтернативы (TurboLua, BirSaat) и вопрос: «почему бы не написать это на C?»

iOS 18.6.1 0-click RCE POC (github.com)

CVE-2025-43300
Уязвимость в Dell PowerProtect Data Manager (версии до 19.14.0-25) позволяет удалённому злоумышленнику без аутентификации выполнить произвольный код.

CVSS 9.8 – критическая.

Суть

Недостаток валидации входных данных в REST-эндпоинте /api/v1/agent/... приводит к внедрению команд в параметре backupName.

PoC

curl -k -X POST https://target:8443/api/v1/agent/backup \
  -H "Content-Type: application/json" \
  -d '{"backupName":"`id`"}'

Ответ вернёт вывод команды id, подтверждая RCE.

Эксплуатация

  1. Сканируем 8443/tcp.
  2. Отправляем payload, получаем обратную shell.
  3. Повышаем привилегии через встроенный sudo (uid=0).

Исправление

Обновиться до 19.14.0-25 или выше.

Mitigation

  • Ограничить доступ к 8443/tcp.
  • Включить WAF-фильтрацию символов ; & | $.

by akyuu • 25 августа 2025 г. в 22:05 • 212 points

ОригиналHN

#rest#curl#rce#security#vulnerability#cve#ios#ipados#github

Комментарии (47)

  • Apple экстренно выпустила единственный патч 13.7.8 / 14.7.8 / 15.6.1 и iOS/iPadOS 18.6.2, закрывающий CVE-2025-43300 в обработке DNG.
  • Публичный PoC пока лишь крашит Photos, но в дикой природе уже есть цепочка до RCE, обходящая BlastDoor.
  • watchOS не получил обновления, вызывая вопросы о его уязвимости.
  • Участники обсуждают нехватку memory-safe парсеров, слабость iMessage-«песочницы» и ценность бага для Zerodium.
  • Советуют включать Lockdown Mode, ежедневно перезагружаться и сканировать бэкапы через elegant-bouncer.

We put a coding agent in a while loop (github.com) 🔥 Горячее 💬 Длинная дискуссия

RepoMirror — сервис для зеркалирования репозиториев GitHub.

  • Как работает: клонирует репозитории и обновляет их по расписанию.
  • Форматы: поддерживает Git, LFS, релизы, issues, PR, wiki.
  • Доступ: публичные и приватные репы (OAuth-токен).
  • Скорость: CDN, параллельные загрузки, дедупликация.
  • API: REST/Webhook для управления зеркалами.
  • Статистика: размер, частота обновлений, ошибки.
  • Архив: хранение старых снапшотов.
  • CLI: repomirror sync <owner>/<repo>.
  • Самостоятельный хостинг: Docker-образ + конфиг repomirror.yml.

by sfarshid • 24 августа 2025 г. в 16:18 • 382 points

ОригиналHN

#github#docker#rest#webhook#cli#oauth#cdn

Комментарии (271)

  • Появится новая «грязная» работа: разгребать legacy-код, порождённый «vibe-coding’ом» продажниками.
  • Агенты в цикле успешно портировали код, но иногда убивали себя pkill’ом, чтобы выйти из бесконечного цикла.
  • Короткие промпты (≈100 слов) работают лучше 1500-словных «улучшений» — агенты быстрее и умнее.
  • Без чётких тестов и стиля код «почти работает», но превращается в неподдерживаемый slop.
  • Стоимость: Sonnet-агент ≈ $10,5/час; без лимитов легко проснуться с огромным счётом.

DeepWiki: Understand Any Codebase (aitidbits.ai)

DeepWiki — сервис от создателей Devin, который мгновенно превращает любой GitHub-репозиторий в интерактивную вики.
Просто замените github.com на deepwiki.com и задавайте вопросы без чтения кода.

8 практических приёмов

  1. Разведка репозитория
    За 2 минуты получаю архитектуру, ключевые модули и точки расширения.

  2. Контекст для агентов
    Копирую сводку в Claude/Cursor, чтобы сразу писать релевантный код.

  3. Быстрый старт
    Генерирую README-инструкции по запуску без ручного изучения docker-compose.yml.

  4. Поиск «кухонных» деталей
    Уточняю, где хранятся env-переменные, какие скрипты npm run доступны и т.д.

  5. Сравнение форков
    Загружаю две вики и спрашиваю: «Что добавлено в форке X по сравнению с оригиналом?»

  6. Онбординг новичков
    Раздаю ссылку на вики вместо 30-минутных экскурсий по коду.

  7. Проверка зависимостей
    Запрашиваю список уязвимых пакетов и актуальные версии.

  8. Документация API
    Прошу сгенерировать примеры вызовов REST-endpoints прямо из кода.

Ограничения

  • Публичные репозитории работают сразу.
  • Приватные — через GitHub OAuth с нужными правами.
  • Нет поддержки SVN и Mercurial.

DeepWiki экономит часы при изучении чужого кода и делает LLM-агентов значительно точнее.

by childishnemo • 24 августа 2025 г. в 07:23 • 205 points

ОригиналHN

#github#docker#npm#rest#large-language-models#code-analysis

Комментарии (36)

  • DeepWiki вызывает противоречивые ощущения: кто-то хвалит автодиаграммы и «глубокие» ответы, кто-то ругает за неточности и «AI-slop».
  • Пользователи LibreOffice, PureLB и других проектов жалуются на ложную документацию и баг-репорты, которые тратят время мейнтейнеров.
  • Некоторые считают, что диаграммы слишком абстрактны и не привязаны к реальному коду.
  • Появились попытки сделать open-source/локальные аналоги, но официального способа «выключить» DeepWiki для своего репозитория пока нет.

MCP: An (Accidentally) Universal Plugin System (worksonmymachine.ai)

MCP: случайно-универсальная система плагинов

USB-C оказался не только для зарядки и файлов, а ещё для всего, что влезет в разъём. Друг подключил тостер к монитору — и теперь тост выводится по HDMI.

То же самое с MCP (Model Context Protocol). В документации написано: «стандартизированный способ подключать ИИ-модели к данным и инструментам». Уберём слово «ИИ» — получаем универсальный разъём, куда можно подцепить что угодно.

Как автомобильная «прикуриватель-розетка» 1952 года сегодня питает телефоны и мини-печки, MCP может связывать календарь с доставкой еды, базы данных с кофеварками, Git-репозитории с умными лампочками. Протокол не осуждает ваши решения.

Параллель: когда в NFT вместо ссылки на картинку вставили саму картинку в base64, технология стала делать то, что не планировалась.

Итог: MCP — это USB-C для приложений. Пока все думают, что он «для ИИ», он уже работает как универсальный адаптер между любыми сервисами.

by azhenley • 10 августа 2025 г. в 12:53 • 144 points

ОригиналHN

#json-rpc#llm#rpc#api#web2#nft#base64#rest#openapi

Комментарии (71)

  • MCP воспринимается как «Web 2.0-2»: повторное открытие мэшапов и RPC-вызовов, но в формате JSON-RPC для LLM.
  • Главная ценность — простые, узкие API, которые даже «средний» LLM может вызвать без ошибок.
  • Критика: серверы жрут контекст, не хватает инженерии под реальные потоки LLM, безопасность и спам по trust-модели 1995-го.
  • Сторонники считают, что MCP — это удобный «универсальный разъём» между сервисами, независимо от наличия ИИ.
  • Скептики: это временный костыль, пока LLM не научатся работать с обычными REST/OpenAPI; скоро компании закроют «дыру».

An LLM does not need to understand MCP (hackteam.io)

Model Context Protocol (MCP) стал стандартом для вызова инструментов при создании агентов, но сам LLM не обязан «понимать» MCP. При «инжиниринге контекста» вы даете модели нужные данные и доступ к инструментам; стандарт MCP лишь унифицирует подключение к ним. Для модели это просто список определений инструментов — она не знает о реализации, и это нормально.

MCP дает доступ к тысячам инструментов без кастомных интеграций и упрощает агентный цикл: разработчик вызывает инструменты, а LLM лишь генерирует текстовый фрагмент с именем инструмента и параметрами. LLM не «умеет» вызывать функции — он предсказывает текст, который ваша система парсит, выполняет реальный вызов и возвращает результат как новое сообщение.

Пример: при наличии инструмента get_weather(location) на вопрос «Какая погода в Сан-Хосе?» модель может сгенерировать: { "name": "get_weather", "input": { "location": "San Jose, CA" } } Агент выполняет этот вызов и передает ответ обратно модели. Разделение обязанностей: LLM предсказывает, система исполняет.

MCP стандартизирует подключение к источникам (инструменты, подсказки, ресурсы, примеры) через хост-приложение с MCP-клиентом и сервера MCP, которые экспонируют инструменты. Взаимодействие с LLM не меняется — меняется способ, как инструменты подаются и вызываются «под капотом». Для того же вопроса модель увидит тот же список инструментов; решение, как именно вызвать, остается за разработчиком (с MCP — через MCP).

Преимущества MCP — для разработчика: управление ростом числа инструментов, переиспользование, единые форматы, быстрые подключения к новым системам без переписывания кода. LLM не узнает о MCP, если вы сами не укажете это в системном промпте; его роль — сгенерировать фрагмент вызова, а ваша — выполнить его.

by gethackteam • 07 августа 2025 г. в 12:52 • 118 points

ОригиналHN

#model-context-protocol#llm#agents#anthropic#rest#authorization#security

Комментарии (97)

  • Участники сомневаются в необходимости MCP: если чат-боты не станут главным интерфейсом, спецификация может оказаться ненужной.
  • Критика сосредоточена на локальной модели «скачай-и-запусти MCP» — её считают избыточной; крупным компаниям достаточно удалённого MCP или прямых REST-вызовов.
  • Большое количество доступных инструментов снижает точность агентов; лучше строго ограничить набор и активно подсказывать, как их использовать.
  • MCP воспринимается как поспешный стандарт от Anthropic, слабо продуманный в части безопасности и авторизации.
  • Некоторые видят перспективу в «USB-аналогии»: MCP может стать универсальным способом подключения систем друг к другу, выходя за рамки LLM.