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