то что за больше чем 10 лет разработки, только сейчас у них начало получатся компилировать исходники для одного ресурса с одной сущностью без ошибок - это очень подозрительно. я хотел переходить на сваггер, но сейчас передумал. если такие траблы грубо говоря с хеллоу ворлд программой, то какая же масса ошибок будет в малом проекте. я уже молчу про проекты средних масштабов...
Swagger Editor позволяет держать конфиденциальную информацию о своем проекте в открытом доступе? Как публиковать свою спецификацию? Надо ли быть зарегистрированным? Может это платно вести свои спецификации для своей компании..?
Если вы говорите именно про работу с Swagger Editor, то я не подскажу, я им не пользуюсь. Только для кратких демонстраций. Расскажу про наш опыт. Есть много редакторов openapi схем, внутри продуктов jetbrains, insomnia и тд. Соответственно это становится частью кодовой базы компании, выкладывает в гит. Публикация схемы = 1. ссылка на поднятый swagger-ui конкретного модуля с openapi схемой (url:port/swagger-ui/index.html). 2. ссылка в гит на спецификацию. 3. просто файл переслать со спецификацией. Мы создаем спецификации внутри intellij idea, для целей внешних интеграций даем ссылку на swagger-ui (п1 выше).
Добрый день. Не совсем понимаю как устроен механизм интерактивного тестирования. Что необходимо, чтобы можно было нажать Try it out, создать объект, изменить его, удалить? И возможно ли это сделать, если нету доступа к исходникам сервера? То есть имея информацию только об API и сущностях без информации о бизнес логики (сервисного и репозиторонго слоя)
Добрый день! Предположим, что с одной стороны у нас есть openapi спецификация, а с другой сервис, который ей соответствует, он доступен по http, а вот доступа к исходникам нет. Тогда мы можем либо у себя локально (Swagger Editor, Swagger UI, Insomnia) открыть спецификацию и пользоваться "Try it out", кнопка будет доступна. Либо ещё вариант Insomnia умеет сгенерировать коллекцию Http запросов, которая соответствует спецификации. Ключевое, что сервис точно соответствует этой спецификации, а иметь доступ в код совсем необязательно. PS. У меня в ближайших планах сделать видео про dredd, как раз один из способов тестирования на соответствие сервиса спецификации.
Можно посмотреть на x-class-extra-annotation. Ссылки для примера stackoverflow.com/a/71526062/14750092 и github.com/OpenAPITools/openapi-generator/issues/324
Честно говоря в данном случае не подскажу, так как этот атрибут был добавлен кем-то самостоятельно через merge request, соответственно в официальную документацию openapi мог не попасть. Хотя в документе про openapi generator есть его упоминание openapi-generator.tech/docs/generators/spring/
Cпасибо Вам огромное! Очень познавательно. Могу я попросить Вас об одолжении написать пошагово, что было сделано? В ролике не удалось уловить.Заранее спасибо!
Здравствуйте, на мой взгляд, лучше посоветую вам посмотреть моё последнее видео на эту тему ua-cam.com/video/DEdVGeua498/v-deo.html . Там уже учтены изменения, внесённые за год, большая часть дефектов в библиотеке, о которых тут была речь в видео, поправлена. Плюс там есть ссылка на гитхаб. Надеюсь, это поможет вам.
судя по этому видосу OpenAPI - мусор, и проще самому писать код для rest сервера. жаль, ведь идея не плохая генерировать код для этих целей автоматически.
Чуть ранее кто-то из подписчиков писал, что эти дефекты уже пофиксили. Так что должно быть норм. Лично мы в проекте без допиливания прекрасно нынче используем. Последнее видео по генерации кода у меня на канале как раз про наш текущий (+/-) подход.
@@IT_like_bricks_building прежде всего кстате спасибо за видосы, а то я набросился как-то внезапно. ну а вообще когда компилируешь шаблон, то компилятор должен либо давать ошибку и не компилировать, либо компилировать в полном соответствии с шаблоном. представь, компилируешь js через babel и всё проходит без ошибок, но потом оказываеться что функция helloWorld() была просто тупо выпилена из кода. это ж просто нонсенс.
Плюсую)) мы сейчас сделали хитро, мы на ci/cd сделали таск по валидации openapi схемы, чтобы как раз не вышло описанной ситуации. В целом отлавливали пару раз косяки
по выводу массива обектов. у меня нет возможности править сгенерированный код и проставлять там @ArraySchema, возможно ли добится такого же поведение через описание спецификации?
Простите, запоздал с ответом, можно сделать. В последних версиях генератора кусок спецификации ниже корректно работает. content: application/json: schema: type: array items: $ref: "#/components/schemas/Toy"
Спасибо за видео! Сдаю проект сегодня, нужно было максимально быстро и понятно разобраться) помогло!
Очень понятные объяснения. Спасибо огромное.
Пожалуйста!
Классно, не знаю, как отблагодарить, так что подписался
Супер, что было полезно)
Генерировал сейчас версией 6.6.0. Ошибок таких уже нет, все исправлено.
Отличная новость. Спасибо!
Попробую снова)
то что за больше чем 10 лет разработки, только сейчас у них начало получатся компилировать исходники для одного ресурса с одной сущностью без ошибок - это очень подозрительно. я хотел переходить на сваггер, но сейчас передумал. если такие траблы грубо говоря с хеллоу ворлд программой, то какая же масса ошибок будет в малом проекте. я уже молчу про проекты средних масштабов...
Спасибо за видео. Коммент в поддержку!
Swagger Editor позволяет держать конфиденциальную информацию о своем проекте в открытом доступе?
Как публиковать свою спецификацию?
Надо ли быть зарегистрированным? Может это платно вести свои спецификации для своей компании..?
Если вы говорите именно про работу с Swagger Editor, то я не подскажу, я им не пользуюсь. Только для кратких демонстраций.
Расскажу про наш опыт. Есть много редакторов openapi схем, внутри продуктов jetbrains, insomnia и тд. Соответственно это становится частью кодовой базы компании, выкладывает в гит. Публикация схемы =
1. ссылка на поднятый swagger-ui конкретного модуля с openapi схемой (url:port/swagger-ui/index.html).
2. ссылка в гит на спецификацию.
3. просто файл переслать со спецификацией.
Мы создаем спецификации внутри intellij idea, для целей внешних интеграций даем ссылку на swagger-ui (п1 выше).
Добрый день. Не совсем понимаю как устроен механизм интерактивного тестирования. Что необходимо, чтобы можно было нажать Try it out, создать объект, изменить его, удалить? И возможно ли это сделать, если нету доступа к исходникам сервера? То есть имея информацию только об API и сущностях без информации о бизнес логики (сервисного и репозиторонго слоя)
Добрый день!
Предположим, что с одной стороны у нас есть openapi спецификация, а с другой сервис, который ей соответствует, он доступен по http, а вот доступа к исходникам нет.
Тогда мы можем либо у себя локально (Swagger Editor, Swagger UI, Insomnia) открыть спецификацию и пользоваться "Try it out", кнопка будет доступна. Либо ещё вариант Insomnia умеет сгенерировать коллекцию Http запросов, которая соответствует спецификации. Ключевое, что сервис точно соответствует этой спецификации, а иметь доступ в код совсем необязательно.
PS. У меня в ближайших планах сделать видео про dredd, как раз один из способов тестирования на соответствие сервиса спецификации.
@@IT_like_bricks_building Благодарю за ответ!
Добрый день, подскажите пожалуйста как добавить собственную аннотацию над полем сгенерированного класса или просто аннотацию?
Можно посмотреть на x-class-extra-annotation. Ссылки для примера stackoverflow.com/a/71526062/14750092 и github.com/OpenAPITools/openapi-generator/issues/324
@@IT_like_bricks_building Спасибо, попробую и так
@@IT_like_bricks_building добрый день а где это все в доках находить, не получается хорошо читать доки(
Честно говоря в данном случае не подскажу, так как этот атрибут был добавлен кем-то самостоятельно через merge request, соответственно в официальную документацию openapi мог не попасть. Хотя в документе про openapi generator есть его упоминание openapi-generator.tech/docs/generators/spring/
Как же все таки не править сгенерированный код а поправить спецификацию так чтобы возвращался массив?
Cпасибо Вам огромное! Очень познавательно. Могу я попросить Вас об одолжении написать пошагово, что было сделано? В ролике не удалось уловить.Заранее спасибо!
Здравствуйте, на мой взгляд, лучше посоветую вам посмотреть моё последнее видео на эту тему ua-cam.com/video/DEdVGeua498/v-deo.html . Там уже учтены изменения, внесённые за год, большая часть дефектов в библиотеке, о которых тут была речь в видео, поправлена. Плюс там есть ссылка на гитхаб.
Надеюсь, это поможет вам.
Please leave here also the link of the video what are you talking about at 1:48. Thaks in advance.
Hello, this one: ua-cam.com/video/hPzorok-gI4/v-deo.html
судя по этому видосу OpenAPI - мусор, и проще самому писать код для rest сервера. жаль, ведь идея не плохая генерировать код для этих целей автоматически.
Чуть ранее кто-то из подписчиков писал, что эти дефекты уже пофиксили. Так что должно быть норм.
Лично мы в проекте без допиливания прекрасно нынче используем. Последнее видео по генерации кода у меня на канале как раз про наш текущий (+/-) подход.
@@IT_like_bricks_building прежде всего кстате спасибо за видосы, а то я набросился как-то внезапно. ну а вообще когда компилируешь шаблон, то компилятор должен либо давать ошибку и не компилировать, либо компилировать в полном соответствии с шаблоном. представь, компилируешь js через babel и всё проходит без ошибок, но потом оказываеться что функция helloWorld() была просто тупо выпилена из кода. это ж просто нонсенс.
Плюсую)) мы сейчас сделали хитро, мы на ci/cd сделали таск по валидации openapi схемы, чтобы как раз не вышло описанной ситуации. В целом отлавливали пару раз косяки
по выводу массива обектов. у меня нет возможности править сгенерированный код и проставлять там @ArraySchema, возможно ли добится такого же поведение через описание
спецификации?
Простите, запоздал с ответом, можно сделать. В последних версиях генератора кусок спецификации ниже корректно работает.
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Toy"