REST + API + Response

Поделиться
HTML-код
  • Опубликовано: 30 мар 2024
  • Благодарности и помощь каналу принимаются:
    www.calabonga.net/site/thanks
    Наши видео доступны и на Дзэн:
    dzen.ru/calabonga
    Можно стать спонсором, и вы получите доступ к эксклюзивным бонусам:
    * boosty.to/calabonga
    Я использую хостинг Reg.ru
    htttps://reg.ru/?rlink=reflink-11163551

Комментарии • 24

  • @user-yo7mw6oj4p
    @user-yo7mw6oj4p 2 месяца назад

    Спасибо. Интересный урок по API

  • @salov_ev
    @salov_ev 2 месяца назад

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

    • @SergeiCalabonga
      @SergeiCalabonga  2 месяца назад

      Мне тоже очень нравится. А ещё это соответствует Single Responsibility Principle (SRP). И это практика из большого опыта.

  • @user-ee6fw8ss4r
    @user-ee6fw8ss4r 2 дня назад

    Интересный подход! Спасибо. И повеселили, ошибка 401, 400, 500, 0, какой 0?! Соврал)))

    • @SergeiCalabonga
      @SergeiCalabonga  2 дня назад

      Программировать надо весело!

  • @user-mt2oc1zg4p
    @user-mt2oc1zg4p 2 месяца назад

    Здравствуйте, может быть расскажите в видео про ConfigureAwait()?

    • @SergeiCalabonga
      @SergeiCalabonga  2 месяца назад

      Кажется "изжёванная" тема. Куча информации в интернете.

  • @user-qg6fn3qx9m
    @user-qg6fn3qx9m 2 месяца назад

    Не понимаю, почему не сделать отлов exception с переводом его в коды ответов , один раз сделали и везде используем не извращаясь над бизнес логикой. Да exception нельзя использовать вываливая исключения как постоянные ответы , но ведь это исключения на нештатные ситуации которых не должно быть. Если разраб бомбит api невалидными данными, то надо решать кривизну его рук)

    • @SergeiCalabonga
      @SergeiCalabonga  2 месяца назад +1

      Делай как нравится, я тоже так делаю. Я же не заставляю делать как я. Я просто поделился опытом. Сделай видео о своём опыте - посмотришь комментарии о нем, всё сразу станет на место. 😁

    • @arfreekiller
      @arfreekiller 2 месяца назад

      @@SergeiCalabonga а если без холиваров, то чем плох такой подход?

    • @user-im6lx5yb7e
      @user-im6lx5yb7e 2 месяца назад

      При таком подходе, каждый раз, при выбросе исключения будет собираться стектрейс, что довольно накладно и будет замедлять работу приложения (критично для хайлоад)

    • @SergeiCalabonga
      @SergeiCalabonga  2 месяца назад +1

      @@user-im6lx5yb7e дык, не выбрасывать тогда! Класс исключения показан только в качестве демонстрации. Создай свой класс DTO и выкидывай его. Забудьте вы уже прл исключения, видео не об этом.

    • @andrey_aka_skif
      @andrey_aka_skif 2 месяца назад

      Как я понял, автор делает упор на способ правильно вернуть результат из контроллера. Т.е. вместо IEnumerable он возвращает IActionResult. По идее, можно вернуть ActionResult. Но суть та же. Это не голые данные, а контейнер, который содержит и данные и дополнительную информацию. Например, описание ошибки.
      Однако, чтобы не засорять контроллеры бизнесовой логикой, он вынес её в сервис. И для удобства возвращает Operation.Result. Как я понимаю, у Вас возникли вопросы именно к этому? В таком подходе фактически используется паттерн Result. Он ещё напоминает монаду (но не готов обсуждать подробнее). Идея в том, что Exception это исключительная ситуация, с которой хз что делать. Обычно "ошибка" сервиса вполне осмысленная, а то и вовсе не ошибка. Например, 409 Conflict никакая не исключительная ситуация. Абсолютно рядовая ситуация при дублировании имени пользователя. Зачем нам падать? Можно вернуть объект, содержащий или данные или сообщение с подробностями. Т.е. работая с сервисом, который возвращает Result, мы уверены, что в нем не возникнет Exception. И нам не нужно дополнительно оборачивать его в try/catch. При этом в самом сервисе try/catch очень даже могут быть. Но свои ошибки сервис отлавливает сам. А контроллер его спокойно пользуется.