Скажи НЕТ власти бэкендеров | Пишем swagger сами | Лучший процесс работы с REST API

Поделиться
HTML-код
  • Опубликовано: 15 ноя 2024

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

  • @fuad2069
    @fuad2069 3 месяца назад +12

    Да ты вообще красавчик, и темы у тебя серьезные

  • @ЕвгенийКарышев-я1я
    @ЕвгенийКарышев-я1я 14 дней назад

    Спасибо дружище... умеешь рассказывать!

  • @BlexJS
    @BlexJS 3 месяца назад +9

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

    • @osad4enko
      @osad4enko 3 месяца назад +1

      изменяя контракт нужно вводить новую версию ендпоинта, тогда не нужно бегать как ошпаненный на фронт и править контракты

  • @АлуаИванова-у5э
    @АлуаИванова-у5э Месяц назад

    спасибо за видео, даже чайнику понятно

  • @СветланаАндреевна-х8р
    @СветланаАндреевна-х8р 3 месяца назад

    Реально видео у вас серьезные спасибо!

  • @mercury_2379
    @mercury_2379 3 месяца назад +2

    классно, спасибо. комментарий для продвижения

  • @АлуаИванова-у5э
    @АлуаИванова-у5э Месяц назад

    33:09 если что можно выделить нужный текст и нажать shift+tab

  • @АлексейСтупников-д4у

    А есть ли генераторы, основанные на спецификации OpenAPI, но позволяющие генерировать на основании кода фронтенда спецификацию? Раньше использовал ApiDoc, но сейчас он уже устарел

  • @beforeidissapear7473
    @beforeidissapear7473 3 месяца назад +12

    Скажи НЕТ власти фронтендеров | Пишем swagger сами

  • @YakubAx
    @YakubAx 3 месяца назад +1

    Как всегда годнота подъехала

  • @agag5083
    @agag5083 3 месяца назад

    Ну ты монстр . в хорошем смысле. Ничего пока не понял но было очень интересно

  • @АлексейСтупников-д4у

    Благодарю за видео, но шрифт очень маленький

  • @ЕвгенийКондобаров-ю7г
    @ЕвгенийКондобаров-ю7г 3 месяца назад +1

    чёткий контент)

  • @АлексейСтупников-д4у

    Ещё минус такого подхода (написание схемы ручками) - это то, что схема будет постоянно отставать от актуального состояния кода и нужно будет каждый раз лезть в схему и обновлять её в ручную. то ли дело автогенерация схемы на основе исходного кода, но для фронтенда я не нашел современных инструментов для этого, а устаревшие (apiDoc) не хочется использовать

    • @paromovevg
      @paromovevg  Месяц назад

      Тут и смысл, что мы сначала пишем схему, а фронтовый код генерируем на её основе. Схема источник истины и она не может устареть

  • @BOCbMOU
    @BOCbMOU 3 месяца назад

    Выглядит очень хорошо, но у меня один вопрос: а где хранить единый ямл? Если монорепа, то понятно, а если нет?
    Можно на сервере хранить, конечно, но тогда это никак не спасает от изменений апишки со стороны бека. Да и как отслеживать изменение ямла?

    • @paromovevg
      @paromovevg  3 месяца назад

      Если не монорепа то в отдельном репозитории под yaml файл)
      Внесение изменений через MR которые должны апрувнуть и бэки и фронты
      Скачивать его можно через curl перед генерацией новой версии

    • @BOCbMOU
      @BOCbMOU 3 месяца назад +1

      @@paromovevg допустим, но тут есть проблема: ломающие изменения.
      В таком случае перед тем, как беку делать работу, надо будет замерджить все необходимые изменения в ямл, но это означает, что ямл будет неактуальный.
      Хорошо, мы можем оставить ямл в другой ветке, но как тогда автоматически подтягивать изменения? Не то, чтобы это нерешаемый вопрос, но под всё это дейтсво надо скрипты писать, чтобы они ещё и у фронтов, и у беков без проблем запускались, ещё и с учётом того, что для доступа к репе с ямлом нужны креденшалы.
      Идея так-то хорошая, но минусы у неё заметные.

  • @ВсеволодРусинский
    @ВсеволодРусинский 3 месяца назад

    Топчик

  • @СергейМеньщиков-р2ш
    @СергейМеньщиков-р2ш 3 месяца назад

    Получается целый гайд по сваггеру?)

  • @Артем-о4щ7р
    @Артем-о4щ7р 3 месяца назад

    а что за анализатор зависимостей на 1:03:00

  • @РустемГадиев-и4к
    @РустемГадиев-и4к 3 месяца назад

    34:38 tab + shift чуваак)))

  • @izzy7541
    @izzy7541 3 месяца назад +2

    А разве не так?
    openapi - спецификация, у неё есть своя версия
    swagger - сервис для генерации доки на основе openapi спеки (таких сервисов кстати не мало)

  • @АлександрСкиталец-ц7р
    @АлександрСкиталец-ц7р 3 месяца назад

    Swagger не защищает клиент от проблем. Я перешёл на io-ts бекендеры не очень рады.

  • @undertale-15075O
    @undertale-15075O 3 месяца назад +1

    Не только swagger. В go вообще почти нет инструментов для него.
    Graphql
    gRPC

    • @SergeyPryada
      @SergeyPryada 3 месяца назад

      а вы знаете почему на го нет инструментов? недавно смотрел и сильно этому удивлялся

  • @araz911
    @araz911 3 месяца назад

    скажи нет боссу на стройке

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

    Сукес.. Итем... Инфаркт.. 😂

  • @unicoxr5tj417
    @unicoxr5tj417 3 месяца назад

    бэк-девы одобряют?))

  • @biLLie_wiLLie
    @biLLie_wiLLie 3 месяца назад

    Что такое контракты?

    • @jgkdmdevienjjgg8866
      @jgkdmdevienjjgg8866 3 месяца назад +6

      Термин из архитектуры приложений/систем. Абстракция от какой-то системы (реализации). Частный случай - интерфейс в языках программирования. Либо публичная часть чего-либо - сигнатура функции например. А также всякие вещи которые имеются в виду - например знание о том что если дернем вот этот метод то система себя поведет так-то.

    • @araz911
      @araz911 3 месяца назад +4

      это когда иванушку забирает военкомат служить на сво

    • @whosane9923
      @whosane9923 29 дней назад

      Сразу видно, что ты не знаешь, что такое контракт ...

  • @АртурЮсупов-о3в
    @АртурЮсупов-о3в 2 месяца назад

    Добрый день!
    Коллеги прошу помочь вас
    Хочу чтобы при вызове данного компонента можно было бы передать style1 и style2 только с одинаковыми полями. Никак не могу придумать как это сделать, ChatGPT несет чушь.
    interface OpenableContainerProps extends HTMLProps {
    children?: ReactNode;
    isOpened: boolean;
    duration: number;
    style1: T;
    style2: T;
    }
    export type AnimationStyleType = {
    top?: SizeType;
    bottom?: SizeType;
    left?: SizeType;
    right?: SizeType;
    ...
    };
    Должно чтобы при вызове такого варианта подсвечивалась ошибка, т.к style 1 и 2 имеют разные поля

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

      а зачем?