OpenAPI Generator - Генерация кода по спецификации

Поділитися
Вставка
  • Опубліковано 20 січ 2025

КОМЕНТАРІ • 30

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

    Спасибо за видео! Сдаю проект сегодня, нужно было максимально быстро и понятно разобраться) помогло!

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

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

  • @DubinArtur
    @DubinArtur 11 місяців тому +2

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

  • @BurzGor
    @BurzGor Рік тому +5

    Генерировал сейчас версией 6.6.0. Ошибок таких уже нет, все исправлено.

    • @IT_like_bricks_building
      @IT_like_bricks_building  Рік тому

      Отличная новость. Спасибо!
      Попробую снова)

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

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

  • @sovrinfo
    @sovrinfo Рік тому +1

    Спасибо за видео. Коммент в поддержку!

  • @nikitazhigalov913
    @nikitazhigalov913 10 місяців тому +1

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

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

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

  • @ЕвгенийЕкименко-г9ж

    Добрый день. Не совсем понимаю как устроен механизм интерактивного тестирования. Что необходимо, чтобы можно было нажать Try it out, создать объект, изменить его, удалить? И возможно ли это сделать, если нету доступа к исходникам сервера? То есть имея информацию только об API и сущностях без информации о бизнес логики (сервисного и репозиторонго слоя)

    • @IT_like_bricks_building
      @IT_like_bricks_building  2 роки тому +4

      Добрый день!
      Предположим, что с одной стороны у нас есть openapi спецификация, а с другой сервис, который ей соответствует, он доступен по http, а вот доступа к исходникам нет.
      Тогда мы можем либо у себя локально (Swagger Editor, Swagger UI, Insomnia) открыть спецификацию и пользоваться "Try it out", кнопка будет доступна. Либо ещё вариант Insomnia умеет сгенерировать коллекцию Http запросов, которая соответствует спецификации. Ключевое, что сервис точно соответствует этой спецификации, а иметь доступ в код совсем необязательно.
      PS. У меня в ближайших планах сделать видео про dredd, как раз один из способов тестирования на соответствие сервиса спецификации.

    • @ЕвгенийЕкименко-г9ж
      @ЕвгенийЕкименко-г9ж 2 роки тому +1

      @@IT_like_bricks_building Благодарю за ответ!

  • @maksimus.ssirotkin1124
    @maksimus.ssirotkin1124 2 роки тому +2

    Добрый день, подскажите пожалуйста как добавить собственную аннотацию над полем сгенерированного класса или просто аннотацию?

    • @IT_like_bricks_building
      @IT_like_bricks_building  2 роки тому +1

      Можно посмотреть на x-class-extra-annotation. Ссылки для примера stackoverflow.com/a/71526062/14750092 и github.com/OpenAPITools/openapi-generator/issues/324

    • @maksimus.ssirotkin1124
      @maksimus.ssirotkin1124 2 роки тому

      @@IT_like_bricks_building Спасибо, попробую и так

    • @maksimus.ssirotkin1124
      @maksimus.ssirotkin1124 2 роки тому

      @@IT_like_bricks_building добрый день а где это все в доках находить, не получается хорошо читать доки(

    • @IT_like_bricks_building
      @IT_like_bricks_building  2 роки тому

      Честно говоря в данном случае не подскажу, так как этот атрибут был добавлен кем-то самостоятельно через merge request, соответственно в официальную документацию openapi мог не попасть. Хотя в документе про openapi generator есть его упоминание openapi-generator.tech/docs/generators/spring/

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

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

  • @soldieroffortune3561
    @soldieroffortune3561 7 місяців тому +1

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

    • @IT_like_bricks_building
      @IT_like_bricks_building  7 місяців тому +1

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

  • @armenuhikocharyan9650
    @armenuhikocharyan9650 Рік тому

    Please leave here also the link of the video what are you talking about at 1:48. Thaks in advance.

  • @404Negative
    @404Negative 11 місяців тому +2

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

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

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

    • @404Negative
      @404Negative 11 місяців тому +2

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

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

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

  • @ivsergey5150
    @ivsergey5150 Рік тому +1

    по выводу массива обектов. у меня нет возможности править сгенерированный код и проставлять там @ArraySchema, возможно ли добится такого же поведение через описание
    спецификации?

    • @IT_like_bricks_building
      @IT_like_bricks_building  Рік тому

      Простите, запоздал с ответом, можно сделать. В последних версиях генератора кусок спецификации ниже корректно работает.
      content:
      application/json:
      schema:
      type: array
      items:
      $ref: "#/components/schemas/Toy"