IT как Конструктор
IT как Конструктор
  • 20
  • 284 610
Api First подход - Генерация кода по OpenAPI спецификации при компиляции
Добавляем OpenAPI / Swagger спецификацию в код проекта, подключаем OpenAPI Generator для автогенерации исходников при компиляции. Пишем свою реализацию для сгенерированных API интерфейсов.
Пример показывает как настроить с нуля проект для реализации Api First (Contract First) подхода. Используется kotlin + spring boot.
00:00 Введение
01:03 Создаем проект
02:24 Настраиваем плагин для генерации
05:05 Настраиваем Swagger UI
07:07 Создаем свой Controller
07:54 Настраиваем Spring Component Scan
10:03 Пишем код для CRUD обработки
14:02 Результат
Полезные ссылки:
Cоздание OpenAPI спецификации: ua-cam.com/video/hPzorok-gI4/v-deo.html
Генерация сервера по OpenAPI спецификации (Часть 1): ua-cam.com/video/HAGSYTN7lZQ/v-deo.html
Исходники проекта на GitHub: github.com/MorkovkAs/openapi-example-toys-autogen
OpenAPI Generator Gradle Plugin: clck.ru/35kzjZ
#openapi #swagger #openapi-generator #generator #tutorial #examples #java #kotlin #spring #REST #API
Переглядів: 5 370

Відео

REST API - Как сделать хорошо
Переглядів 18 тис.Рік тому
В этом видео я расскажу основные принципы при проектирование REST API, которых стоит придерживаться, чтобы ваше описание было понятным и удобным для использования. Первый шаг перед созданием отличной OpenAPI или Swagger спецификации. 00:00 Введение 01:33 Запрос / Request 07:55 Ответ / Response Готовая OpenAPI спецификация: clck.ru/32rzdu #REST #API #tutorial #openapi #swagger #examples
Проблемы с Apache NiFi и как с ними бороться. Наш опыт
Переглядів 2,1 тис.2 роки тому
Поделюсь опытом, полученным за время работы над проектом, в котором мы увлеклись и сделали больше 3к процессоров в Apache NiFi. Будут как типовые проблемы, так и советы, и варианты их решения. 00:00 Введение 00:41 Наш проект 04:10 На что обратить внимание 11:48 Советы 12:54 Легко ли с нуля разобраться 13:41 NiFi Registry 15:19 Кластер и репликация #Apache #NiFi #Tutorial #Examples
Автотесты для REST сервиса и его OpenAPI / Swagger спецификации
Переглядів 7 тис.2 роки тому
Проверяем с помощью Dredd, соответствует ли сервис своей OpenAPI и Swagger спецификации. Как можно автоматизировать этот процесс. Настраиваем Dredd для тестирования сервиса "Магазин игрушек" из прошлого видео ( ua-cam.com/video/HAGSYTN7lZQ/v-deo.html ). 00:00 Введение 01:59 Прикручиваем Dredd 03:54 Первые результаты 05:52 Пишем код для CRUD обработки 10:24 Результат Готовая спецификация: GitHub...
OpenAPI Generator - Генерация кода по спецификации
Переглядів 22 тис.2 роки тому
Создаем код по OpenAPI / Swagger спецификации с помощью OpenAPI Generator (аналог Swagger Codegen) и исправляем базовые ошибки после автогенерации. В примере используется java spring boot. 00:00 Введение 00:53 Установка OpenAPI Generator 01:27 Генерация кода 03:29 Исправляем ошибки 07:56 Результат Готовая спецификация: GitHub Link: clck.ru/sT7kq Google Disc Link: clck.ru/sT7nk #openapi #swagger...
Выкачиваем код Apache NiFi. Меняем под себя и делаем UI для процессора
Переглядів 1 тис.2 роки тому
Выкачиваем код Apache NiFi, смотрим, что в нем можно легко поменять под себя. Разбираем создание кастомного UI для процессора. 00:00 Введение 00:41 Пример доработанного интерфейса 00:48 Git Clone Сборка кода 02:05 Сборка только своих изменений 02:54 Локализация 03:26 Новая иконка на панели инструментов 04:59 Кастомный UI процессора 07:10 Кастомный Content Viewer 07:54 Полезные ссылки 08:16 Вопр...
Как ускорить процессоры в Apache NiFi. Оптимизация
Переглядів 1,2 тис.2 роки тому
Быстрый способ ускорить большинство процессоров в Apache NiFi. Используем параметр run duration. #Apache #NiFi #Tutorial #Examples
OpenAPI и Swagger Editor - своё описание REST API с нуля
Переглядів 92 тис.2 роки тому
Создаем OpenAPI спецификацию с нуля в Swagger Editor. В видео показан весь процесс проектирования REST API для вымышленного магазина игрушек от самого старта до конца. 00:00 Введение 00:25 Создание спецификации 04:44 Описание объектов в API 10:09 Параметры 15:12 Результат Готовая спецификация: GitHub Link: clck.ru/sT7kq Google Disk Link: clck.ru/sT7nk #openapi #swagger #tutorial #examples #REST...
Первый опыт в OpenAPI / Swagger - это PetStore проект
Переглядів 20 тис.2 роки тому
Изучение OpenAPI и Swagger начинается с PetStrore проекта. Разберемся в функционале Swagger UI, немного Insomnia (аналог Swagger Editor) и, конечно же, поотправляем запросы. Sorry за пропавший курсор:) Ссылка на проект: petstore.swagger.io/ #openapi #Swagger #Tutorial #Examples #PetStore #REST #API
Кратко про OpenAPI и Swagger
Переглядів 59 тис.2 роки тому
Обзор возможностей OpenAPI и Swagger и преимуществ, которые они дают. 00:00 Введение 00:33 REST 02:28 Что такое OpenAPI и Swagger? 14:08 Swagger Framework 15:07 OpenAPI Tools 16:17 Играемся с pet project 20:12 Вопросы Полезные ссылки на доклады от Яндекса: habr.com/ru/company/yandex/blog/501088/ ua-cam.com/video/lYjm2w8-ERI/v-deo.html #OpenAPI #Swagger #Tutorial #Examples #REST #API #smartbear
Сравнение Java 11 vs 17 LTS
Переглядів 1,7 тис.2 роки тому
Обзор фич, которые постепенно появлялись в Java, начиная с 11ой версии. 00:00 Введение 02:37 Java 12 03:36 Java 13 04:13 Java 14 07:25 Java 15 08:22 Java 16 11:22 Java 17 #Java #Java11 #Java17 #LTS
Обзор Keycloak и настройка SSO в NiFi
Переглядів 6 тис.2 роки тому
Обзор возможностей и настройка Keycloak для управления пользователями и ролями и реализации механизма Single Sign On (SSO) в Apache NiFi. 00:00 Обзор решения 08:12 Интерфейс Keycloack 10:40 NiFi и Keycloack 18:00 Вопросы #Keycloak #SSO #Apache #NiFi #Registry #Tutorial #Examples #ETL #ELT
Git, Apache NiFi Registry и CI/CD
Переглядів 2,2 тис.3 роки тому
Apache NiFi Tutorial. 2 часть про экспорт и импорт потоков в NiFi. Воспользуемся NiFi Toolkit и научимся автоматически выгружать поток в Git. Всё, что нужно для полноценного старта с CI/CD. 00:00 Интро 00:16 Apache NiFi Cli 04:43 NiFi Registry Git = CI/CD 08:58 Итоги и минусы Registry #Apache #NiFi #Registry #Tutorial #Examples #ETL #ELT
Экспорт и импорт потоков с помощью рук, Rest Api и Apache NiFi Registry
Переглядів 2 тис.3 роки тому
Apache NiFi Tutorial. Как выгрузить процесс из Apache NiFi и не потерять по пути данные. Выполняем основные действия несколькими способами. Ручным в интерфейсе NiFi, отправкой запросов через NiFi Rest Api и используя NiFi Registry. 00:00 Интро 00:27 Экспорт шаблона 02:23 Импорт шаблона 03:29 Чуток автоматизируем. Rest Api 06:45 При чем тут NiFi Registry. Чем он лучше? Ссылка на описание Rest Ap...
Apache NiFi Registry Install v1.14.0
Переглядів 1,2 тис.3 роки тому
Как установить Apache NiFi Registry на примере v1.14.0 кратко о его функционале. 00:00 Скачиваем архив 00:28 Запускаем NiFi Registry 01:00 Открываем интерфейс NiFi Registry 01:40 Интегрируем NiFi с NiFi Registry 02:03 Включаем версионирование потока в NiFi 02:44 Проверяем результат в NiFi Regisrty 02:58 Анонс следующего видео #Apache #NiFi #Registry #Install #Examples #Установка #ETL #ELT
История изменений данных в Apache NiFi. Data Provenance
Переглядів 1,3 тис.3 роки тому
История изменений данных в Apache NiFi. Data Provenance
Apache NiFi особенности. Без чего не выйти в прод
Переглядів 4,3 тис.3 роки тому
Apache NiFi особенности. Без чего не выйти в прод
Процессоры в Apache NiFi и не только. Разбираемся с деталями конструктора
Переглядів 8 тис.3 роки тому
Процессоры в Apache NiFi и не только. Разбираемся с деталями конструктора
Apache NiFi Install v1.14.0
Переглядів 11 тис.3 роки тому
Apache NiFi Install v1.14.0
Apache NiFi. Введение и первый опыт на практике. Это же конструктор!
Переглядів 19 тис.3 роки тому
Apache NiFi. Введение и первый опыт на практике. Это же конструктор!

КОМЕНТАРІ

  • @silverdrag221
    @silverdrag221 12 днів тому

    Я как-то пропустил момент касающийся Схем. (schema) что ? откуда куда?))

  • @КонстантинДолгин-р8ф

    Впервые пишу комент на тьюбе) просто хочется человеку сказать СПАСИБО!

  • @perseverance4884
    @perseverance4884 24 дні тому

    Подскажите, в url сервера что писать? Постоянно выдаёт ошибку

  • @Loolita228
    @Loolita228 Місяць тому

    бля базиришь, более и не нужно, спасибо

  • @fotoKurer
    @fotoKurer Місяць тому

    Видео супер! Но вопрос не совсем по теме. Как так окна разделить удобно??

    • @IT_like_bricks_building
      @IT_like_bricks_building Місяць тому

      Ахахаха, спасибо))) На Винде зажать кнопку win и стрелочки вправо влево. Текущее открытое приложение займет пол экрана. А дальше можно курсоров додвинуть, если надо не половину, а как-то иначе.

  • @tashtanov-q3p
    @tashtanov-q3p Місяць тому

    MOLODETS

  • @samaleycom
    @samaleycom Місяць тому

    Меня улыбнуло: «сразу исправлю небольшую ошибку» *удалил кусок кода* Готово!😂😂

  • @ЗайнабАшикова-й4с
    @ЗайнабАшикова-й4с 2 місяці тому

    Помогите пожалуйста написать апи для интеграции с внешними системами на примере управления персоналом

  • @andrushka324
    @andrushka324 3 місяці тому

    около бесполезное видео, которое ничего толком и не объясняет.

  • @ipabogdanov
    @ipabogdanov 3 місяці тому

    Не совсем понимаю, как увеличение потоков может уменьшить время выполнения процесса при запросе по сети. Ведь пока данные из ответа запроса не пришли следующий процессор не сможет обрабатывать сформированные из запроса флоу-файлы.

  • @Zadr01
    @Zadr01 3 місяці тому

    вы чо там у себя при создании сущности в ответ возвращаете 200 а не 201? лол кек чебурек

  • @dopetag
    @dopetag 3 місяці тому

    Почему все слайды на английском, а повествование на русском?

  • @Тори-я8л
    @Тори-я8л 3 місяці тому

    Антон, спасибо большое за это видео и за подробное объяснение ваших действий

  • @al77ex1
    @al77ex1 3 місяці тому

    Как же все таки не править сгенерированный код а поправить спецификацию так чтобы возвращался массив?

  • @Vesna7-rt
    @Vesna7-rt 4 місяці тому

    Подскажите пожалуйста, в каком в виде хранятся документы в swagger?

  • @Djabba_Hutt
    @Djabba_Hutt 4 місяці тому

    6:48

  • @igork5095
    @igork5095 5 місяців тому

    Тихая запись. можно и погромче )

  • @ApocalypsisPK
    @ApocalypsisPK 5 місяців тому

    Весело и просто! Спасибо!

  • @soldieroffortune3561
    @soldieroffortune3561 5 місяців тому

    Cпасибо Вам огромное! Очень познавательно. Могу я попросить Вас об одолжении написать пошагово, что было сделано? В ролике не удалось уловить.Заранее спасибо!

    • @IT_like_bricks_building
      @IT_like_bricks_building 5 місяців тому

      Здравствуйте, на мой взгляд, лучше посоветую вам посмотреть моё последнее видео на эту тему ua-cam.com/video/DEdVGeua498/v-deo.html . Там уже учтены изменения, внесённые за год, большая часть дефектов в библиотеке, о которых тут была речь в видео, поправлена. Плюс там есть ссылка на гитхаб. Надеюсь, это поможет вам.

  • @МаксимГ-ю9в
    @МаксимГ-ю9в 5 місяців тому

    Очень просто и доходчиво, прекрасны и подача, и сам материал. Большое спасибо!

  • @charodeika.06
    @charodeika.06 5 місяців тому

    ОГРОМНОЕ СПАСИБО!!!!!!

    • @IT_like_bricks_building
      @IT_like_bricks_building 5 місяців тому

      Пожалуйста!

    • @charodeika.06
      @charodeika.06 5 місяців тому

      @@IT_like_bricks_building единственный ролик, который на практике показал как с этой штуковиной справиться! Еще раз спасибо!

    • @IT_like_bricks_building
      @IT_like_bricks_building 5 місяців тому

      Успехов вам!

  • @khasanshadiyarov
    @khasanshadiyarov 6 місяців тому

    11:00 Не метод /pets, а ресурс /pets или путь

    • @IT_like_bricks_building
      @IT_like_bricks_building 5 місяців тому

      Это уже из категории "правильный ответ для собеседования". В целом да, спасибо за ремарку, но я не считаю это кричиным для повседневного. Учитывая, что в коде это методы. Хотя в некоторых языках принято называть функции.

  • @КаринаПогосян-ь8л
    @КаринаПогосян-ь8л 6 місяців тому

    начала работать системным аналитиком, помогли, спасибо

  • @lohmatuy
    @lohmatuy 6 місяців тому

    А данная инструкция актуальна еще?

    • @IT_like_bricks_building
      @IT_like_bricks_building 6 місяців тому

      Формально да. Когда выпустят 2.0, там, наверное, что-то изменится

  • @anastasiyastar4
    @anastasiyastar4 6 місяців тому

    Не совсем поняла, зачем при разговоре про Swagger показывать интерфейс Инсомния? просто как аналог? Так я видео смотрю, чтоб про Swagger узнать

    • @IT_like_bricks_building
      @IT_like_bricks_building 6 місяців тому

      Отличный вопрос на самом деле! Спасибо. Чтобы ответить на него, нужно сначала понять, что вы подразумеваете под swagger. Программы (их там несколько) или спецификацию. Видео (как и большая часть моего плейлиста) плавно подводило к современной openapi спецификации. А чем ее создавать и просматривать, это дело вкуса и лицензий.

  • @НатальяРуфс
    @НатальяРуфс 6 місяців тому

    Очень понятные объяснения. Спасибо огромное.

  • @vzenkin
    @vzenkin 6 місяців тому

    Спасибо!

  • @Rmakulin
    @Rmakulin 6 місяців тому

    Воды бы поменьше, слушать ужасно

  • @Axbd-p4i
    @Axbd-p4i 7 місяців тому

    Здравствуйте, сейчас через nifi делаю авторизацию в keycloak с помощью логина и пароля. Далее после успешной авторизации - получаю токен А как можно реализовать с помощью клиентского сертификата? То есть как можно авторизоваться с помощью клиентского сертификата

  • @fixcay7129
    @fixcay7129 7 місяців тому

    Подскажи, а как добавляется сущность чтобы указывать производителя игрушки?

  • @ЛеонидПескин-з7ы
    @ЛеонидПескин-з7ы 7 місяців тому

    очень тихо((

  • @НадеждаШумская-б7т
    @НадеждаШумская-б7т 8 місяців тому

    Супер, спасибо, как раз то, что я и искала: максимум практики!

  • @barristan1960
    @barristan1960 8 місяців тому

    дай Бог тебе здоровья и девушку с 4 размером груди автор! Спасибо!😄

  • @alinad8971
    @alinad8971 8 місяців тому

    Счастья, здоровья, детей красивых. Ментальное здоровье сохранено благодаря этому видео! 😅

  • @yalmeme
    @yalmeme 8 місяців тому

    так, а как получившееся описание использовать-то? что сделать чтобы на моем сервере так же красиво открывалось как в редакторе?

    • @IT_like_bricks_building
      @IT_like_bricks_building 8 місяців тому

      Использований много, начиная от красивого описания, заканчивая кодогенерацией. Подтяните зависимость swagger-ui к вашему проекту

    • @Zadrot1080p
      @Zadrot1080p 6 місяців тому

      swagger ui

    • @Jenny-so-it
      @Jenny-so-it 2 місяці тому

      @@IT_like_bricks_building Подскажите как подтянуть? как сделать так, что документация была в моем проекте по определенному урлу, приложение написано раньше чем дока, вот теперь сформированную доку в editore нужно как-то разместить в проекте, по определенной ссылке, подскажите как??? пожалуйста!

    • @IT_like_bricks_building
      @IT_like_bricks_building 24 дні тому

      Немного поздно заметил вопрос, думаю, вы уже справились. Но ответ таков, что подключаем в проект зависимость swagger ui, и там указываем путь к спецификации. По итогу при старте модуля на url:port/swagger-ui/index.html (вроде бы так) откроется ваша спецификация

  • @nikitazhigalov913
    @nikitazhigalov913 8 місяців тому

    Swagger Editor позволяет держать конфиденциальную информацию о своем проекте в открытом доступе? Как публиковать свою спецификацию? Надо ли быть зарегистрированным? Может это платно вести свои спецификации для своей компании..?

    • @IT_like_bricks_building
      @IT_like_bricks_building 8 місяців тому

      Если вы говорите именно про работу с Swagger Editor, то я не подскажу, я им не пользуюсь. Только для кратких демонстраций. Расскажу про наш опыт. Есть много редакторов openapi схем, внутри продуктов jetbrains, insomnia и тд. Соответственно это становится частью кодовой базы компании, выкладывает в гит. Публикация схемы = 1. ссылка на поднятый swagger-ui конкретного модуля с openapi схемой (url:port/swagger-ui/index.html). 2. ссылка в гит на спецификацию. 3. просто файл переслать со спецификацией. Мы создаем спецификации внутри intellij idea, для целей внешних интеграций даем ссылку на swagger-ui (п1 выше).

  • @vadimgurlenko6373
    @vadimgurlenko6373 8 місяців тому

    Здравствуйте при запуске файла run-nifi.bat вот такая ошибка: Command Failed to determine Process ID from [java.lang.ProcessImpl]: java.lang.Process.pid() подкажите

    • @бебезян
      @бебезян 7 місяців тому

      У меня была ошибка. Сначала хотел разархивировать на диск D, потом поставил на тот путь, который он предлагал по умолчанию. заработало без проблем. мб вы просто тоже путь изменяли. Больше решений не знаю. Надеюсь, что помог или вы уже решили эту проблему

  • @kolob204
    @kolob204 8 місяців тому

    Спасибо + В карму

  • @наойдан
    @наойдан 8 місяців тому

    спасибо

  • @404Negative
    @404Negative 9 місяців тому

    судя по этому видосу OpenAPI - мусор, и проще самому писать код для rest сервера. жаль, ведь идея не плохая генерировать код для этих целей автоматически.

    • @IT_like_bricks_building
      @IT_like_bricks_building 9 місяців тому

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

    • @404Negative
      @404Negative 9 місяців тому

      @@IT_like_bricks_building прежде всего кстате спасибо за видосы, а то я набросился как-то внезапно. ну а вообще когда компилируешь шаблон, то компилятор должен либо давать ошибку и не компилировать, либо компилировать в полном соответствии с шаблоном. представь, компилируешь js через babel и всё проходит без ошибок, но потом оказываеться что функция helloWorld() была просто тупо выпилена из кода. это ж просто нонсенс.

    • @IT_like_bricks_building
      @IT_like_bricks_building 9 місяців тому

      Плюсую)) мы сейчас сделали хитро, мы на ci/cd сделали таск по валидации openapi схемы, чтобы как раз не вышло описанной ситуации. В целом отлавливали пару раз косяки

  • @alextopal2227
    @alextopal2227 9 місяців тому

    Можно ли в одном запросе создать несколько "питомцев"?

    • @IT_like_bricks_building
      @IT_like_bricks_building 9 місяців тому

      Да, в body делаем массив, и сервер будет создавать сразу несколько, если его так запрограммировать

    • @alextopal2227
      @alextopal2227 9 місяців тому

      @@IT_like_bricks_buildingделаю такой массив, но возвращает 500…валидатором проверил json, вроде бы как все ок…

  • @prostoprosa
    @prostoprosa 9 місяців тому

    Без этого видео я скорее всего пошел на зарубежный ютуб, ибо на РФ ничего норм найти не смог. Видео очень пригодилось. Большое тебе спасибо!

  • @DubinArtur
    @DubinArtur 9 місяців тому

    Классно, не знаю, как отблагодарить, так что подписался

  • @ДеметрР
    @ДеметрР 9 місяців тому

    четко и понятно, спасибо!

    • @ДеметрР
      @ДеметрР 9 місяців тому

      есть разбор оформления документации по АПИ Аналитиками для разработчиков: к примеру, описали мы в сваггере АПИ, что дальше с этим делать?

    • @ДеметрР
      @ДеметрР 9 місяців тому

      Достаточно ли разработке ссылки (на сваггер) на данный формат описания АПИ?

    • @IT_like_bricks_building
      @IT_like_bricks_building 9 місяців тому

      Ссылки достаточно для разработчиков. Там исчерпывающая инфа для создания Api. Останется только бизнес логику описать, то есть какие действия модуль делает при получении определенного запроса

    • @ДеметрР
      @ДеметрР 9 місяців тому

      @@IT_like_bricks_building Спасибо большое от системного аналитика!

  • @ДмитрийТарасевич-в3ц
    @ДмитрийТарасевич-в3ц 9 місяців тому

    errorCode мой случай) бизнес логика может содержать свои состояния. Например http может быть 200 но по бизнес логике запрос будет отклонен - не страшно. Но например по бизнес логике нужно передать успешный код в параметре errorCode. С точки зрения семантики может здесь лучше использовать например statusCode? Как правильно, поделитесь?

    • @IT_like_bricks_building
      @IT_like_bricks_building 9 місяців тому

      Воо, отличный пример)) В вашем случае, соглашусь, errorCode точно как-то не очень будет выглядеть. statusCode гораздо лучше, главное, что бы все участники процесса четко отличали его от http status code (в документации, в openApi спецификации).

  • @NotBad-j5e
    @NotBad-j5e 10 місяців тому

    а если нет вкладок create template/upload template ?(другая версия nifi видимо)

    • @IT_like_bricks_building
      @IT_like_bricks_building 10 місяців тому

      А какая у вас? У меня сейчас 24 стоит и вроде как есть кнопки

  • @JanSobolewski1987
    @JanSobolewski1987 10 місяців тому

    Вот уж действительно it как конструктор лего

  • @андрейшаульский-в5к
    @андрейшаульский-в5к 10 місяців тому

    Познавательно!

  • @cemisovs
    @cemisovs 11 місяців тому

    Спасибо за хорошее видео! Программа dredd не обновлялась более года. Не свидетельствует ли это о затухании проекта? Есть ли какие похожие проекты для тестирования API по спецификации?

    • @IT_like_bricks_building
      @IT_like_bricks_building 11 місяців тому

      Пожалуйста. Да, dredd подустарел чуток, но все равно хорош. Microcks можно как next level рассмотреть.

  • @chemosa392
    @chemosa392 11 місяців тому

    1) Почему у вас имя пользователя при изменении providers.xml MorkovkA's, хотя должно быть MorkovkAs? 2) Надо добавлять origin в Remote To Push часть тоже?

    • @IT_like_bricks_building
      @IT_like_bricks_building 10 місяців тому

      Хороший вопрос, вернусь с ответом немного позже)