Если у тебя фронт и бек на тайпскрипте, то контракты можно вынести в нпм пакет, (При локальном подключении - могут быть сложности если клиент и сервер в разных репозиториях, придется добавлять гит саб модуль с контрактами и следить за их обновлением. При удалённом подключении - простота в использование в разных репозиториях, но нужно следить за версией пакета). Или использовать менеджеры моно репозиториев
А есть ли генераторы, основанные на спецификации OpenAPI, но позволяющие генерировать на основании кода фронтенда спецификацию? Раньше использовал ApiDoc, но сейчас он уже устарел
Ещё минус такого подхода (написание схемы ручками) - это то, что схема будет постоянно отставать от актуального состояния кода и нужно будет каждый раз лезть в схему и обновлять её в ручную. то ли дело автогенерация схемы на основе исходного кода, но для фронтенда я не нашел современных инструментов для этого, а устаревшие (apiDoc) не хочется использовать
Выглядит очень хорошо, но у меня один вопрос: а где хранить единый ямл? Если монорепа, то понятно, а если нет? Можно на сервере хранить, конечно, но тогда это никак не спасает от изменений апишки со стороны бека. Да и как отслеживать изменение ямла?
Если не монорепа то в отдельном репозитории под yaml файл) Внесение изменений через MR которые должны апрувнуть и бэки и фронты Скачивать его можно через curl перед генерацией новой версии
@@paromovevg допустим, но тут есть проблема: ломающие изменения. В таком случае перед тем, как беку делать работу, надо будет замерджить все необходимые изменения в ямл, но это означает, что ямл будет неактуальный. Хорошо, мы можем оставить ямл в другой ветке, но как тогда автоматически подтягивать изменения? Не то, чтобы это нерешаемый вопрос, но под всё это дейтсво надо скрипты писать, чтобы они ещё и у фронтов, и у беков без проблем запускались, ещё и с учётом того, что для доступа к репе с ямлом нужны креденшалы. Идея так-то хорошая, но минусы у неё заметные.
А разве не так? openapi - спецификация, у неё есть своя версия swagger - сервис для генерации доки на основе openapi спеки (таких сервисов кстати не мало)
Термин из архитектуры приложений/систем. Абстракция от какой-то системы (реализации). Частный случай - интерфейс в языках программирования. Либо публичная часть чего-либо - сигнатура функции например. А также всякие вещи которые имеются в виду - например знание о том что если дернем вот этот метод то система себя поведет так-то.
Добрый день! Коллеги прошу помочь вас Хочу чтобы при вызове данного компонента можно было бы передать 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 имеют разные поля
Да ты вообще красавчик, и темы у тебя серьезные
Спасибо дружище... умеешь рассказывать!
Если у тебя фронт и бек на тайпскрипте, то контракты можно вынести в нпм пакет, (При локальном подключении - могут быть сложности если клиент и сервер в разных репозиториях, придется добавлять гит саб модуль с контрактами и следить за их обновлением. При удалённом подключении - простота в использование в разных репозиториях, но нужно следить за версией пакета). Или использовать менеджеры моно репозиториев
изменяя контракт нужно вводить новую версию ендпоинта, тогда не нужно бегать как ошпаненный на фронт и править контракты
спасибо за видео, даже чайнику понятно
Реально видео у вас серьезные спасибо!
классно, спасибо. комментарий для продвижения
33:09 если что можно выделить нужный текст и нажать shift+tab
А есть ли генераторы, основанные на спецификации OpenAPI, но позволяющие генерировать на основании кода фронтенда спецификацию? Раньше использовал ApiDoc, но сейчас он уже устарел
Скажи НЕТ власти фронтендеров | Пишем swagger сами
Как всегда годнота подъехала
Ну ты монстр . в хорошем смысле. Ничего пока не понял но было очень интересно
Благодарю за видео, но шрифт очень маленький
чёткий контент)
Ещё минус такого подхода (написание схемы ручками) - это то, что схема будет постоянно отставать от актуального состояния кода и нужно будет каждый раз лезть в схему и обновлять её в ручную. то ли дело автогенерация схемы на основе исходного кода, но для фронтенда я не нашел современных инструментов для этого, а устаревшие (apiDoc) не хочется использовать
Тут и смысл, что мы сначала пишем схему, а фронтовый код генерируем на её основе. Схема источник истины и она не может устареть
Выглядит очень хорошо, но у меня один вопрос: а где хранить единый ямл? Если монорепа, то понятно, а если нет?
Можно на сервере хранить, конечно, но тогда это никак не спасает от изменений апишки со стороны бека. Да и как отслеживать изменение ямла?
Если не монорепа то в отдельном репозитории под yaml файл)
Внесение изменений через MR которые должны апрувнуть и бэки и фронты
Скачивать его можно через curl перед генерацией новой версии
@@paromovevg допустим, но тут есть проблема: ломающие изменения.
В таком случае перед тем, как беку делать работу, надо будет замерджить все необходимые изменения в ямл, но это означает, что ямл будет неактуальный.
Хорошо, мы можем оставить ямл в другой ветке, но как тогда автоматически подтягивать изменения? Не то, чтобы это нерешаемый вопрос, но под всё это дейтсво надо скрипты писать, чтобы они ещё и у фронтов, и у беков без проблем запускались, ещё и с учётом того, что для доступа к репе с ямлом нужны креденшалы.
Идея так-то хорошая, но минусы у неё заметные.
Топчик
Получается целый гайд по сваггеру?)
а что за анализатор зависимостей на 1:03:00
34:38 tab + shift чуваак)))
А разве не так?
openapi - спецификация, у неё есть своя версия
swagger - сервис для генерации доки на основе openapi спеки (таких сервисов кстати не мало)
Swagger не защищает клиент от проблем. Я перешёл на io-ts бекендеры не очень рады.
Не только swagger. В go вообще почти нет инструментов для него.
Graphql
gRPC
а вы знаете почему на го нет инструментов? недавно смотрел и сильно этому удивлялся
скажи нет боссу на стройке
Сукес.. Итем... Инфаркт.. 😂
бэк-девы одобряют?))
Что такое контракты?
Термин из архитектуры приложений/систем. Абстракция от какой-то системы (реализации). Частный случай - интерфейс в языках программирования. Либо публичная часть чего-либо - сигнатура функции например. А также всякие вещи которые имеются в виду - например знание о том что если дернем вот этот метод то система себя поведет так-то.
это когда иванушку забирает военкомат служить на сво
Сразу видно, что ты не знаешь, что такое контракт ...
Добрый день!
Коллеги прошу помочь вас
Хочу чтобы при вызове данного компонента можно было бы передать 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 имеют разные поля
а зачем?