TGViewer
StepOne | Степан Минин StepOne | Степан Минин @steponeit · 3.26K subscribers
Post #833 2.59K
Починил WireMock пока не заблокировали GitHub

Я использую WireMock на работе, чтобы мокировать gRPC-вызовы внешних сервисов и тестировать транспортный уровень. Это придаёт уверенности в интеграциях до выхода в реальные окружения. Всё должно было работать гладко, но я столкнулся с неприятностью. Логи мок-сервера внезапно заполнились ошибками. Это произошло, как только моков стало несколько и ко всем пошли запросы. Стало ясно: здесь что-то не так.

Я нырнул в исходный код WireMock и начал отлаживать его шаг за шагом, как сложный механизм. Проверял всё: как protobuf-байты превращаются в gRPC C#-объекты и обратно, где именно ломается логика. И в один момент щёлкнуло: сервер просто перебирает все заглушки подряд и пытается сконвертировать байты в неподходящие типы сообщений. Представьте ребёнка с сортером: он не ищет сразу квадратное отверстие, а методично примеряет кубик ко всем подряд.

Я вышел на связь с автором WireMock из Нидерландов, и мы вместе стали искать решение. В процессе проектирования стало понятно: нужен ранний отказ от заглушки по явным признакам запроса — URL, header, cookie и другим. Проще говоря, система должна сразу выбирать «квадратное отверстие» для «кубика», а не перебирать всё подряд. Это не только устранило ошибки, но и избавило сервер от лишней работы.

Сам процесс, когда инженер из России и разработчик из Нидерландов вместе решают проблему — это и есть настоящая магия опен-сорса и глобализации. Мой Pull Request уже влит, скоро выйдет новая версия NuGet пакета. Но что будет, если завтра такие связи оборвутся? Вы готовы жить в мире, где развитие технологий замедляется не из-за сложности задач, а из-за границ в интернете?
GitHub Feature/early mismatch by Stepami · Pull Request #1451 · wiremock/WireMock.Net Description added new method WireMock.RequestBuilders.IRequestBuilder.WithEarlyMismatch covered feature with tests (WireMockServerTests.Grpc and RequestMessageCompositeMatcherTests) Method WithEa...
  • 🤯 19
  • 🔥 11
  • 👍 7
  • ❤ 1
  • ❤‍🔥 1
  • 😁 1
More from @steponeit
  1. Sep 21, 2026Post #857
  2. Sep 15, 2026Напомню, что у меня есть WireMock.Grpc.Protobuf — расширение для тех, кто пишет компонентн…
  3. Sep 12, 2026StepOne — официальный контрибутор FusionCache 🤙 Между набросами можно ещё и код писать Fu…
  4. Sep 11, 2026Стояк работодателей 2026 🤫 Оказывается, год назад я предсказал выход Астры! И вместе с эт…
  5. Sep 10, 2026Доставка - новое IT Мужчина на видео делится опытом заработка 350 000 ₽ за месяц без выход…
  6. Sep 4, 2026GPT-6 УЖЕ ЗДЕСЬ!!! Мне стала доступна Астра!!! Теперь я ИИ-Пилот на стыке эпох! AI-First S…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →