TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Regional compilations Thematic compilations Платные каналы Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
  • Promotion
    Advertising through Yandex Business Advertising in channels through TGStat Agency Advertising on TGStat.ru website
.NET sh blog

20 Jun, 23:05

Open in Telegram Share Report

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

Работает оно следующим образом: incremental source generator бегает по методам, ищет в теле метода выбросы исключений или возврат кодов ошибок в виде result pattern, потом смотрит на все вызовы методов внутри него и пробегается и по ним и собирает коды ошибок по каждому методу.

К слову, анализатором можно покрыть большинство сценариев, но далеко не все. подробнее читайте в readme библиотеки.

В итоге генерируется мапа, где key = FullyQualified method name (или OperationId/Route для minimal api), а value = массив найденных кодов ошибок.

Эту мапу уже можно использовать по-разному. Например, отображать в сваггере или написать ассерты в тестах, также можно детектировать изменение кодов ошибок ответа API, ведь это по сути breaking change для потребителя.

В примере проекта я добавил отображение в сваггере, с ссылкой на документацию по коду ошибки (если он есть). 'https://t.me/sh_dotnet/138?comment=559' rel='nofollow'>См скриншот в комментариях.

253 0 9 1 16
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot