Посмотрел видео после перерыва в программировании чтобы освежить память - спасибо, было полезно. Пара моментов: 1. У себя я описываю методы внутри контроллеров, причем каждый метод описывается отдельно над ним самим, а не над контроллером в целом - достаточно удобно для сравнения самого метода и аннотации к нему. При этом у меня что методы, что аннотации по умолчанию свернуты, поэтому все выглядит компактно и красиво. 2. Схемы можно расписывать отдельно внизу аннотации, а в аннотации метода ссылаться на них. 3. Можно включить автогенерацию документации, чтобы каждый раз не генерировать ее вручную. 4. Еще я не использовал allOf, видимо потому, что принимаю не JSON, а параметры отдельно.
Cделай пожалуйста видео по кешированию данньіх, а именно про Redis и ему подобное. Очень нужна информация єта в структурированном класном виде в твоем стиле подачи!) Поддержите лайками чтоб автор увидел!
Максимально неудобный подход 1. Руками расставлять отступы, форматировать, нет атокоплитов. Через некоторе время эти коменты превратятся в хаос 2. Дублировать руками контроллеры, вообще дичь. Лишние файлы, при добавлении новых методов нужно не забыть дублировать в оба места, по-любому кто-то по ошибке при разработке вставит в роутере вызов метода контроллера, который ничего не делает 3. Генерировать каждый раз документацию Решения 1. Писать yaml руками. Есть атвокомплит с плагинами, не будет ошибки по синтаксису, не нужно генерировать файл каждый раз. Минус - большой файл 2. Сделать структуру с папками маленькими yaml файлами + сборщик всего этого добра в единый yaml (есть пакет для Ларки) 3. Выбросить древний Swagger и писать документацию в Postman или другом современном инструменте
1. Вы раньше практиковали однометодные контроллеры, мне кажется сейчас они максимально актуальны. Создавать дубль одного и того-же контроллера, сомнительно конечно. Да вам придётся прописать все 4 роута для круда, но в этом есть и плюсы, вы избавитесь от этой магии ресурса, для новичков так супер актуально. 2. ХЗ как там работает сваггер если его отдельным докер-контейнром организовывать, но чисто в теории, это может лишить вас этих проблем с авторизацией. Можно повесить авторизацию на уровне nginx, или что-то вроде того. 3. Кому нужно организовать доку, и с вас не требуют обязательно сделать это через сваггер, есть решение по проще. Можно сделать доку через постман. В постмане можно нажать на всю группу и сгенерить доку, он сгенерит тоже html-ку. В постмане можно очень легко делать варианты запросов и их ответов. Не помню точно как называется, но там возле ответа есть кнопка "Save as example" что-то такое. Вы можете наплодить много вариантов, где каждый например уникалльный. Вот 200, вот 404, вот 422, вот 500. Он генериит странички где будут и все вариант запроса и все вариант ответа, и описание можно добавить. В общем, сильно проще, в добавок вы и так скорее всего уже юзаете постман и у вас есть там запросы, зачем их дублировать в сваггер? :))
Как по мне это боль ! Код файл с кодом перегружен (хотя можно выносить параметры запроса и формат ответа в ресурсы или реквесты) описанием для свагера. Дубликаты контроллеров тоже боль.
А чем эти PHP аннотации лучше обычного yaml файла c OpenApi спецификациями? OpenApi спецификации хорошо поддерживается IDE, а PhpStorm - он сам себе сваггер. Там есть кнопка типа "скомпилировать доки из спецификации". Выглядит это все очень странно, как будто технология используется не по назначению. В программный код вручную добавляется второй параллельный программный код, тем более какие-то лишние классы. Поймите правильно, не холиварю и без притензий. Но в легком замешательстве. Может чего не понял.
Ты допустил одну большую ошибку. Ты описываешь полные аннотации реквестов и респонсов в контроллере, понятно что у тебя он большим станет. Надо же реквесты описывать в твоем конкретном файле реквеста где у тебя идет валидация, тоже самое и с респонсами. Так гораздо удобнее ведь ты считай описываешь поля реквеста в файле с реквестом и все поля у тебя под рукой. Вот в пример как это бы выглядело /** * @OA\Post( * path="/users", * @OA\RequestBody(ref="#/components/schemas/UserRequestBodySchema"), * @OA\Response(response=200, ref="#/components/schemas/SuccessResponseSchema"), * @OA\Response(response=201, ref="#/components/schemas/OtherResponseSchema") * ) Конструкция в контроллере вышла не большой, следовательно создавать папку свагер с одноименными контроллерами не обязательно
Привет, а как сделать что-бы в параметрах можно было вводить заголовки, у меня базовая авторизация и при отправки запроса через сваггер он выдаёт диалоговое окно?
Не хватало мне подобного урока очень давно, но посмотрев его сейчас подумал "хорошо что раньше не нашел".. Не понимаю зачем захламлять проект этими комментариями, если можно всё описывать в openapi файле и читать его swagger'ом
интересно, в @OA\Response всегда будет выдаваться : response=200, description="Ok", независимо от результата? Допустим, пытаюсь удалить пост, которого нет, в Server response выйдет ошибка с кодом 400- "Error: Bad Request", а ниже, в респонсес так и выдается, код 200 и "Ок".
Это какая то боль. Использую стандартную аутентификацию. Ид сесси сохраняет в куку в виде строки, в которой есть вот такой кусок "joiIn0%3D". Вставляя эту строку в сваггер, получаю вот такой кусок строки "joiIn0%253D", т е знак процента кодируется в %25. Что делать то((((
Мужик, спасибо за полезное видео. Сними про Redis пожалуйста! Ребята, поднимите коммент лайками плиз.
Тоже было бы интересно посмотреть
@@antonpiatenko577 Тоже пишу коментьі под видео с аналогичной просьбой! Почти нет на ютуб свежих актуальньіх роликов по даной теме....
Лучше про RabbitMq
Красавчик, спасибо за труд
Огромное спасибо, очень вовремя!!!
Всем привет, пожилые ребятушки!
Круто, не знал, что есть такой инструмент. Посмотрел первую треть, очень полезно. Обязательно вернусь к видео позже.
Посмотрел видео после перерыва в программировании чтобы освежить память - спасибо, было полезно.
Пара моментов:
1. У себя я описываю методы внутри контроллеров, причем каждый метод описывается отдельно над ним самим, а не над контроллером в целом - достаточно удобно для сравнения самого метода и аннотации к нему. При этом у меня что методы, что аннотации по умолчанию свернуты, поэтому все выглядит компактно и красиво.
2. Схемы можно расписывать отдельно внизу аннотации, а в аннотации метода ссылаться на них.
3. Можно включить автогенерацию документации, чтобы каждый раз не генерировать ее вручную.
4. Еще я не использовал allOf, видимо потому, что принимаю не JSON, а параметры отдельно.
От души огромное благодарю Уважаемый!👋👍👏
Cделай пожалуйста видео по кешированию данньіх, а именно про Redis и ему подобное. Очень нужна информация єта в структурированном класном виде в твоем стиле подачи!)
Поддержите лайками чтоб автор увидел!
Отличный урок, спасибо!
Благодарю!:)
Максимально неудобный подход
1. Руками расставлять отступы, форматировать, нет атокоплитов. Через некоторе время эти коменты превратятся в хаос
2. Дублировать руками контроллеры, вообще дичь. Лишние файлы, при добавлении новых методов нужно не забыть дублировать в оба места, по-любому кто-то по ошибке при разработке вставит в роутере вызов метода контроллера, который ничего не делает
3. Генерировать каждый раз документацию
Решения
1. Писать yaml руками. Есть атвокомплит с плагинами, не будет ошибки по синтаксису, не нужно генерировать файл каждый раз. Минус - большой файл
2. Сделать структуру с папками маленькими yaml файлами + сборщик всего этого добра в единый yaml (есть пакет для Ларки)
3. Выбросить древний Swagger и писать документацию в Postman или другом современном инструменте
каждое видео просто класс
1. Вы раньше практиковали однометодные контроллеры, мне кажется сейчас они максимально актуальны. Создавать дубль одного и того-же контроллера, сомнительно конечно. Да вам придётся прописать все 4 роута для круда, но в этом есть и плюсы, вы избавитесь от этой магии ресурса, для новичков так супер актуально.
2. ХЗ как там работает сваггер если его отдельным докер-контейнром организовывать, но чисто в теории, это может лишить вас этих проблем с авторизацией. Можно повесить авторизацию на уровне nginx, или что-то вроде того.
3. Кому нужно организовать доку, и с вас не требуют обязательно сделать это через сваггер, есть решение по проще. Можно сделать доку через постман.
В постмане можно нажать на всю группу и сгенерить доку, он сгенерит тоже html-ку.
В постмане можно очень легко делать варианты запросов и их ответов. Не помню точно как называется, но там возле ответа есть кнопка "Save as example" что-то такое. Вы можете наплодить много вариантов, где каждый например уникалльный. Вот 200, вот 404, вот 422, вот 500.
Он генериит странички где будут и все вариант запроса и все вариант ответа, и описание можно добавить.
В общем, сильно проще, в добавок вы и так скорее всего уже юзаете постман и у вас есть там запросы, зачем их дублировать в сваггер? :))
Сваггер умеет генерить клиентский апи. У нас на проекте на его основе фронты апишку связывают
Ютуб мои мысли читает. Только думал о том как swagger c laravel вяжется. И вот он в предложениях просмотра.
Как по мне это боль !
Код файл с кодом перегружен (хотя можно выносить параметры запроса и формат ответа в ресурсы или реквесты) описанием для свагера. Дубликаты контроллеров тоже боль.
Просто пушка! спасибо за качественный материал!
Так там вроде в VerifyCsrfToken не надо ставить в исключение, если роуты берутся из api, там вроде по умолчанию уже не проверяется csrf
Удачи тебе брат!
Гоу редис, кешинг !! Имбовая темка
Спасибо большое!
Шрифт отличный. Лично я отлично вижу
Благодарю!)
А чем эти PHP аннотации лучше обычного yaml файла c OpenApi спецификациями? OpenApi спецификации хорошо поддерживается IDE, а PhpStorm - он сам себе сваггер. Там есть кнопка типа "скомпилировать доки из спецификации".
Выглядит это все очень странно, как будто технология используется не по назначению. В программный код вручную добавляется второй параллельный программный код, тем более какие-то лишние классы.
Поймите правильно, не холиварю и без притензий. Но в легком замешательстве. Может чего не понял.
Хотелось бы видео по апи в 11 версии.
Laravel Creative, расскажите пожалуйста про websocket на production версии с HTTPS.
было бы хорошо, если бы автор ролика выкладывал свой код на гитхаб.
сделаешь курс по админке Laravel Orchid или полноценную админку с ролями и тд а не эти огрызки от админки ?)
Ты допустил одну большую ошибку. Ты описываешь полные аннотации реквестов и респонсов в контроллере, понятно что у тебя он большим станет. Надо же реквесты описывать в твоем конкретном файле реквеста где у тебя идет валидация, тоже самое и с респонсами. Так гораздо удобнее ведь ты считай описываешь поля реквеста в файле с реквестом и все поля у тебя под рукой. Вот в пример как это бы выглядело /**
* @OA\Post(
* path="/users",
* @OA\RequestBody(ref="#/components/schemas/UserRequestBodySchema"),
* @OA\Response(response=200, ref="#/components/schemas/SuccessResponseSchema"),
* @OA\Response(response=201, ref="#/components/schemas/OtherResponseSchema")
* ) Конструкция в контроллере вышла не большой, следовательно создавать папку свагер с одноименными контроллерами не обязательно
Привет, а как сделать что-бы в параметрах можно было вводить заголовки, у меня базовая авторизация и при отправки запроса через сваггер он выдаёт диалоговое окно?
Не хватало мне подобного урока очень давно, но посмотрев его сейчас подумал "хорошо что раньше не нашел"..
Не понимаю зачем захламлять проект этими комментариями, если можно всё описывать в openapi файле и читать его swagger'ом
интересно, в @OA\Response всегда будет выдаваться : response=200, description="Ok", независимо от результата? Допустим, пытаюсь удалить пост, которого нет, в Server response выйдет ошибка с кодом 400- "Error: Bad Request", а ниже, в респонсес так и выдается, код 200 и "Ок".
Спасибо за видео!
Каким образом можно добавить в в сваггер необязательное наличие jwt, от наличия которого будет зависеть объем данных в ответе?
Swagger на Laravel точно не для людей сделан, какой-то извращенец его создавал. На C# и то компактнее все описывать , чем здесь.
Чет не выходит ошибка на 22:50, в консоли выводит: ERROR There are no commands defined in the "l5-swagger" namespace.
Проект создаем в подсистеме Linux на винде не работает
Лайк за труды, но было бы лучше без "ребятушек"?
А ты старпер и без юмора дедуля чели?😅
Лучшего учителя ещё не встречал, автору большой респект
Странно, что до сих пор этот компонент сам не берет route:list и не анализирует синтакс контроллеров 😅
Авторизация в Swagger работает с Sanctum или только с JWT?
Это какая то боль. Использую стандартную аутентификацию. Ид сесси сохраняет в куку в виде строки, в которой есть вот такой кусок "joiIn0%3D". Вставляя эту строку в сваггер, получаю вот такой кусок строки "joiIn0%253D", т е знак процента кодируется в %25.
Что делать то((((
Спасибо как раз прошлом видео написал про это в коментарии)
Ураааа🎉🎉🎉🎉
Работал с RabbitMq Reddis? было бы интересн окак это в связке работает
aws покажешь как рабоать?
В будущем:)