Laravel и Swagger/OpenAPI
Вставка
- Опубліковано 22 сер 2024
- По просьбам трудящихся запилил небольшую (хех, один час, ага) инструкцию о том как можно готовить Swagger и Laravel в одной кастрюльке.
Ссылка на репозиторий проекта из видео:
github.com/Evi...
Laravel в Docker
github.com/Evi...
Swagger Codegen
github.com/swa...
Полноценное API на примере HaipIT News
api.haipit.new...
Полезные ссылки:
- Телега: t.me/evilfreel...
- Основной канал: / @pavelzloi
- Live-канал: / @e-freelancerlivechann...
- Twitch: / evilfreelancer
- Twitter: / evilfreelancer
- GitHub: github.com/Evi...
Ссылки на Steam:
- Группа Steam: steamcommunity...
- Рекомендации куратора: store.steampow...
Сделать пожертвование:
- www.donational...
Bolishoe spasibo za etot podrobnui video-urok! Dolgo ne mogla nastroiti svoi proekt so swaggerom, a posle prosmotra vse poluchilosi.
Спасибо за такой подробный и понятный видеоурок. Приятно получить в одном видео столько полезной информации. Сразу вспомнить работу с api, получить ещё какие-то полезные навыки. Не приходится после каждого слова ставить на пазу и лезть в интернет смотреть определение того или иного слова или действия.
Добрый вечер! Рад что наработки пригодилось:)
Вот кстати плейлист в котором есть ещё пару видеороликов на тему OpenAPI ua-cam.com/play/PLTd7y0vdxhK52EdlMx2jiZZrwktZcmDKo.html
@@pavelzloi Спасибо большое!
С такими полезными видосами, думаю твой канал начнёт расти очень скоро. Спасибо за труд!
Не растет. Может шуток много )))
Спасибо большое) Подача материала на очень хорошем уровне!
Спасибо! Ценный материал
Благодарю.
Очень полезно, спасибо за видос
1,25 и четко
Этому видео нужны таймкоды, где говорится именно о Swagger, почти всё видео рассказывается о базовых вещах или не связанных с темой видео
Спасибо. очень полезное видео
Павел, спасибо огромное! Вы крутой ) Сколько лет прошло с момента выхода видео, а других видео на русском языке про openapi и laravel так и не появилось. Или технологии сильно поменялись и сейчас эта связка не жизнеспособна?
Добрый день! Благодарю за комментарий!
Думаю причина малого количества подобных видео в том что видеоблоггеры рассказывают про темы интересные большинству, про то что принесёт максимальные просмотры (в кратчайшие сроки) и как следствие деньги.
Например новости, скандалы или какие-то хайповые темы, а тема OpnAPI интересна пожалуй небольшой группе профессионалов и как следствие принесёт в разы меньше просмотров, чем скажем тема OpenAI, поэтом про подобное и мало видеороликов. ну по крайней мере мне так кажется.
@@pavelzloi Да, согласен. Ещё раз спасибо )
Го больше видосов по ларе) Было бы интересное взглянуть на подобный формат видео с другими интересными вещами. О свагерре узнал когда делал фронт для django,очень удобно,не надо теребить бэк-эндера каждый раз.
Благодарю за предложение, у меня не очень много свободного времени чтобы пилить видосы, но по возможности буду записывать и о Ларочке что-нибудь, благо в ней полно интересных функций которых поначалу не видно.
если смотреть на скорости 1,5 - то очень даже интересно
я на 1,75 смотрел
Мне кажется, что урок получился немного затянутым и это из-за того, что по мере написания ты объяснял базовые вещи, которые не относятся к предмету урока. Типа "composer сначала смотрит в composer.lock" или объяснения почему ты написал в роутинге ресурс, а не руками каждый роут описал. Мне кажется, что если ты на уроке хотел показать как работать со swagger, то и нужно на этом сконцентрироваться и не тратить время на другие вещи. Некий SRP для контента :-D
Благодарю, согласен, но уровень знаний у всех разный, я старался сделать так чтобы и совсем новичкам было понятно, и для опытных ребят было интересно.
спасибочки, найс инфа)
Swagger поддерживается, просто раньше это был и набор утилит и сама спецификация. Спецификацию отпилили в отдельный проект - OpenAPI, а Swagger отныне это только набор утилит. Википедия утверждает, что описывать API в коде - это легаси. Современный подход - выносить спецификацию OpenAPI в отдельный файл.
Благодарю, очень ценное замечание, на момент записи данного видео я ещё не знал об этом, для меня OpenAPI казалась просто ребрендингом Swagger, насчёт описания кода в проекте как раз и записал данный видеоролик, есть библиотеки которые позволяют упростить процесс генерации конфига.
Но скажу Вам честно, меня всё больше и больше разочаровывает подход RESTful, слишком много рутины которую невозможно избежать даже с помощью Codegen, в отличии от GraphQL, намедни как раз внедрил на пет проджекте его.
@@pavelzloi у многих разработчиков RESTful при изменении данных фактически превращается в набор RPC вызовов так как наряду с POST/PUT/DELETE появляются глаголы login, calculate, block, activate и так далее. Где-то интуитивно можно понять, что POST /user/login это может быть POST /authentication, но в целом положить всю бизнес-логику на HTTP методы без глаголов в URL - сложная или даже невозможная задача, что видно, если посмотреть RESTful APIs различных проектов.
GraphQL использует мутации (RPC) и не пытается натянуть сову на HTTP методы, если требуется, чтобы она спала, то пишем процедуру - owlSleep. Но по поводу выборок связанных объектов, я не уверен, что это правильное решение, особенно если используется websocket протокол, где требуется не только получать сущность, но и все её последующие обновления. В итоге при изменении одной вложенной сущности требуется пересылать весь граф. Неэффективно. Есть отличное выступление ua-cam.com/video/_vjSZhnYhfI/v-deo.html и там похожий момент обсуждается, но относительно HTTP протокола. Ну и сама реализация на бекенде скорее всего будет довольно сложной и может быть даже невозможной, так как после мутации сущности, необходимо определить не только тех пользователей, кто напрямую подписан на изменения этой сущности, но и всех тех, кто подписан на неё косвенно через вложенные сущности. Соответственно для каждого клиента потребуется также готовить разные наборы данных. Жесть.
Истина как всегда где-то по середине. Я считаю, что для изменения данных отлично подходит RPC, а для чтения данных ресурсы из REST. Это должно отлично работать поверх любого протокола.
Полезный урок, спасибо за подробные примеры) Жаль, что канал заглох :(
Рад что смог помочь :) не совсем заглох, я перебрался в Telegram @evilfreelancer так что милости прошу. А в настоящий момент я доделал всё что нуно для продолжения видосов про кластер на ARM и как будет совбдная минута запишу футаж.
Amigos!
В моем проекте почему-то не проходят вообще Curl запросы в swagger документации. В консоле получаю ошибку Cannot read properties of null (reading 'get')
привет, а как быть,
передаю POST-запрос для кастомной авторизации,
в body - name и password,
в ответе приходит html с 419 кодом ошибки,
внутри html указано "Page Expired".
В Postman при этом работает все ок.
Добрый день! Скорее всего у Вас на эндпоинте авторизации настроена принудительная проверка мидлвейра верификации токена. Вроде это можно было как-то отключить.
@@pavelzloi да, в классе VerifyCSRFToken можно в except прописать URL-ы для исключения из поверки CSRF-токена.
Спасибо за ответ!
Как-то можно сгенерировать автоматом эту документацию?
Спасибо, мне очень полезно! А версия swagger 3 чем-то отличается в использовании?
Добрый день! Скорее всего Вы имеете ввиду не Swagger 3, а OpenAPI 3.0, потому что некоторое время назад спецификации были выделены в отдельный проект swagger.io/blog/news/announcing-openapi-3-0/
Вот кстати ссылочка на визуальный гайд про изменения blog.readme.com/an-example-filled-guide-to-swagger-3-2/
Как видно из поста изменений много, вместо @Swg теперь надо писать @OA, новая логика описания авторизации, плюс новые схемы и типы данных добавили.
Мне к сожалению не доводилось делать перенос на новую версию спецификаций, но подозреваю, что большого труда это не составит, да и наверняка уже есть готовые утилиты под это дело.
@@pavelzloi да, именно про это, спасибо. Я все пытаюсь найти в виде аннотаций, практические примеры. Но видимо пока еще никто не запилил.
Try this, Luke mermade.org.uk/openapi-converter :)
Тут типа надо вставить json файлик, который генерит свагер, в конвертер и в ответе будет тоже самое, но в формате спецификаций новой версии.
А вот если это надо в пхп коде править согласен, тема не очень освещённая, если бы мне надо было решать задачу про переход с 2.0 на 3.0, я бы делал так: сконвертировал бы сначала конфиг и изучил различия, потом подгонял бы пхп под новую спеку, читая параллельно доку про разметку.
Вот Вам идейка, если хотите то можете запилить тестовый проектик (без персональных данных и всего такого за что Вас может пожурить начальство) на гитхабе и скинуть мне ссылочку, а я запишу видео про перенос конкретно Вашего тестового проекта с 2.0 на 3.0
UPD: Typos fixed
@@pavelzloi да я только начал изучать и вот сижу, ломаю голову. Сначала освоить второй, а потом переползать на третий, или искать ответы сразу на третьей версии.
Лично я сразу начал с OpenAPI 3.0 так как оказалось, что найти рабочие утилиты под Swagger было не просто, да и все либы которые я нашёл на гитхабе рекомендуют отказываться от Swagger и удаляют/удалили его поддержку и полностью перешли на OpenAPI спецификации.
и как установить??????????????????????
Почему наши русские блогеры в обучающих видео так много "болтают", ненужных информаций очень много. (
Ушуну жон эле койбоптурсунда🤣
@@doolatbekaldaberdiev5334 сага пох эмеспи
please give me the github link of api.haipit.news swagger project.. Thank you
Hello! Sorry. but this project is not an open source, but I can provide to you samples of some non-important swagger models.
Спасибо, именно то, что искал!
Но зачем так коверкать английские слова - сом (some), валюе (value) - что это???? Ты же по-русски не коверкаешь слова!
Большое спасибо за комментарий! Есть кстати ещё небольшое дополнение про openapi на канале. А насчёт коверканья слов, так это был рофл, не переживайте, на английском я говорю нормально :)
@@pavelzloi спасибо за дополнение по ОпенАПИ, реально полезная тема. А по поводу приколов с английским, я ейчас переехал в другую страну и неверное произношение так стало резать слух! Сразу такая аларма в голове возникает!
@@maxnag-dev лично я общаюсь на английском по работе последние года три-четыре, начал спокойно относиться к любому произношению/акценту и даже стал понимать людей из Индии и Австралии :)
@@pavelzloi мне пока трудно понять индусов, часть из них так говорят, что теряю контекст) а у нас их целый офис
Как познать php с нуля?
Как и любую другую профессию ;) учиться, практиковать, не бояться трудностей, критически подходить к знаниям. Через 1000 часов практики будешь мастером в почти любой области.