
Apache Camel под .NET, разбор по косточкам: HTTP-коннектор без ASP.NET MVC + паттерн Content-Based Router
grelikt 51 минуту назад Apache Camel под .NET, разбор по косточкам: HTTP-коннектор без ASP.NET MVC + паттерн Content-Based Router Сложный 32 мин 1.6K .NET * C# * Open source * Туториал redb route http chise whenСерия:...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Значимый прорыв формирует отрасль ИИ: grelikt 51 минуту назад Apache Camel под . NET, разбор по косточкам: HTTP-коннектор без ASP. NET MVC + паттерн Content-Based Router Сложный 32 мин 1.
NET * C# * Open source * Туториал redb route http chise whenСерия: redb ecosystem / redb. Route deep-diveВ redb. Route — нашем ESB в стиле Apache Camel под .
Технические детали
NET — маршрут всегда читается одинаково: From(источник) → → To(приёмник). Сегодня берём один простой паттерн интеграции и один коннектор и разбираем оба до самого дна. Паттерн: Content-Based Router — «маршрутизация по содержимому».
Самый базовый из routing-паттернов Хопе и Вульфа: посмотреть в сообщение и решить, куда оно поедет дальше. Http — встроенный HTTP/HTTPS. С одной стороны это продюсер (HTTP-клиент на HttpClient), с другой — консьюмер (встроенный сервер на Kestrel).
Без контроллеров, без , без middleware-конвейера ASP. NET, который вы пишете руками. Статья техническая и большая.
Отраслевые последствия
Если вы ждёте «hello world за 5 строк» — он будет, но дальше мы влезаем в то, как коннектор устроен внутри: как один Kestrel шарится между маршрутами, как заголовки и параметры маршрута попадают в Exchange и обратно, как именно работает CORS на общем сервере, что происходит со стримингом и почему в коде нет ни одного app. Весь код проверен по исходникам redb. Http, все примеры — из реального redb.
Сценарий, на котором всё держитсяВозьмём приземлённую задачу: HTTP-шлюз. Снаружи приходит POST /api/demo, внутри мы:принимаем тело,смотрим на заголовок mode и в зависимости от него выбираем ветку обработки — это и есть Content-Based Router;отвечаем синхронно тем же HTTP-запросом (request/reply). Вот скелет (полную версию разберём в конце), redb.
Demo/Routes/MainPipelineRoutes. RouteId("demo-http-entry . When(e => GetHeader(e, "mode == "full .
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.




