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...

КОМЕНТАРІ • 63

  • @alenamekhnina-marcalle5234
    @alenamekhnina-marcalle5234 5 років тому +1

    Bolishoe spasibo za etot podrobnui video-urok! Dolgo ne mogla nastroiti svoi proekt so swaggerom, a posle prosmotra vse poluchilosi.

  • @GossteerPlus
    @GossteerPlus 3 роки тому +1

    Спасибо за такой подробный и понятный видеоурок. Приятно получить в одном видео столько полезной информации. Сразу вспомнить работу с api, получить ещё какие-то полезные навыки. Не приходится после каждого слова ставить на пазу и лезть в интернет смотреть определение того или иного слова или действия.

    • @pavelzloi
      @pavelzloi  3 роки тому +1

      Добрый вечер! Рад что наработки пригодилось:)
      Вот кстати плейлист в котором есть ещё пару видеороликов на тему OpenAPI ua-cam.com/play/PLTd7y0vdxhK52EdlMx2jiZZrwktZcmDKo.html

    • @GossteerPlus
      @GossteerPlus 3 роки тому

      @@pavelzloi Спасибо большое!

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

    С такими полезными видосами, думаю твой канал начнёт расти очень скоро. Спасибо за труд!

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

      Не растет. Может шуток много )))

  • @user-ht5jp8rq9s
    @user-ht5jp8rq9s 3 роки тому +2

    Спасибо большое) Подача материала на очень хорошем уровне!

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

    Спасибо! Ценный материал

  • @user-wh9yb1rr3i
    @user-wh9yb1rr3i Рік тому

    Благодарю.

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

    Очень полезно, спасибо за видос

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

    1,25 и четко

  • @user-vc3xn7gh3d
    @user-vc3xn7gh3d 4 роки тому +4

    Этому видео нужны таймкоды, где говорится именно о Swagger, почти всё видео рассказывается о базовых вещах или не связанных с темой видео

  • @user-uv3uo7cv3c
    @user-uv3uo7cv3c 4 роки тому +1

    Спасибо. очень полезное видео

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

    Павел, спасибо огромное! Вы крутой ) Сколько лет прошло с момента выхода видео, а других видео на русском языке про openapi и laravel так и не появилось. Или технологии сильно поменялись и сейчас эта связка не жизнеспособна?

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

      Добрый день! Благодарю за комментарий!
      Думаю причина малого количества подобных видео в том что видеоблоггеры рассказывают про темы интересные большинству, про то что принесёт максимальные просмотры (в кратчайшие сроки) и как следствие деньги.
      Например новости, скандалы или какие-то хайповые темы, а тема OpnAPI интересна пожалуй небольшой группе профессионалов и как следствие принесёт в разы меньше просмотров, чем скажем тема OpenAI, поэтом про подобное и мало видеороликов. ну по крайней мере мне так кажется.

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

      @@pavelzloi Да, согласен. Ещё раз спасибо )

  • @darakanoit
    @darakanoit 5 років тому

    Го больше видосов по ларе) Было бы интересное взглянуть на подобный формат видео с другими интересными вещами. О свагерре узнал когда делал фронт для django,очень удобно,не надо теребить бэк-эндера каждый раз.

    • @pavelzloi
      @pavelzloi  5 років тому

      Благодарю за предложение, у меня не очень много свободного времени чтобы пилить видосы, но по возможности буду записывать и о Ларочке что-нибудь, благо в ней полно интересных функций которых поначалу не видно.

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

    если смотреть на скорости 1,5 - то очень даже интересно

    • @maxnag-dev
      @maxnag-dev 4 роки тому

      я на 1,75 смотрел

  • @user-jc2rl1uh6u
    @user-jc2rl1uh6u 5 років тому +2

    Мне кажется, что урок получился немного затянутым и это из-за того, что по мере написания ты объяснял базовые вещи, которые не относятся к предмету урока. Типа "composer сначала смотрит в composer.lock" или объяснения почему ты написал в роутинге ресурс, а не руками каждый роут описал. Мне кажется, что если ты на уроке хотел показать как работать со swagger, то и нужно на этом сконцентрироваться и не тратить время на другие вещи. Некий SRP для контента :-D

    • @pavelzloi
      @pavelzloi  5 років тому +1

      Благодарю, согласен, но уровень знаний у всех разный, я старался сделать так чтобы и совсем новичкам было понятно, и для опытных ребят было интересно.

  • @user-jn1px7rp3h
    @user-jn1px7rp3h 4 роки тому

    спасибочки, найс инфа)

  • @xfg9183
    @xfg9183 4 роки тому +1

    Swagger поддерживается, просто раньше это был и набор утилит и сама спецификация. Спецификацию отпилили в отдельный проект - OpenAPI, а Swagger отныне это только набор утилит. Википедия утверждает, что описывать API в коде - это легаси. Современный подход - выносить спецификацию OpenAPI в отдельный файл.

    • @pavelzloi
      @pavelzloi  4 роки тому

      Благодарю, очень ценное замечание, на момент записи данного видео я ещё не знал об этом, для меня OpenAPI казалась просто ребрендингом Swagger, насчёт описания кода в проекте как раз и записал данный видеоролик, есть библиотеки которые позволяют упростить процесс генерации конфига.
      Но скажу Вам честно, меня всё больше и больше разочаровывает подход RESTful, слишком много рутины которую невозможно избежать даже с помощью Codegen, в отличии от GraphQL, намедни как раз внедрил на пет проджекте его.

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

      @@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. Это должно отлично работать поверх любого протокола.

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

    Полезный урок, спасибо за подробные примеры) Жаль, что канал заглох :(

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

      Рад что смог помочь :) не совсем заглох, я перебрался в Telegram @evilfreelancer так что милости прошу. А в настоящий момент я доделал всё что нуно для продолжения видосов про кластер на ARM и как будет совбдная минута запишу футаж.

  • @dasuneranda
    @dasuneranda 3 роки тому

    Amigos!

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

    В моем проекте почему-то не проходят вообще Curl запросы в swagger документации. В консоле получаю ошибку Cannot read properties of null (reading 'get')

  • @PlayGameToday
    @PlayGameToday 4 роки тому +1

    привет, а как быть,
    передаю POST-запрос для кастомной авторизации,
    в body - name и password,
    в ответе приходит html с 419 кодом ошибки,
    внутри html указано "Page Expired".
    В Postman при этом работает все ок.

    • @pavelzloi
      @pavelzloi  4 роки тому +1

      Добрый день! Скорее всего у Вас на эндпоинте авторизации настроена принудительная проверка мидлвейра верификации токена. Вроде это можно было как-то отключить.

    • @PlayGameToday
      @PlayGameToday 4 роки тому +1

      @@pavelzloi да, в классе VerifyCSRFToken можно в except прописать URL-ы для исключения из поверки CSRF-токена.
      Спасибо за ответ!

  • @ruslan_nurgaleev
    @ruslan_nurgaleev 8 місяців тому

    Как-то можно сгенерировать автоматом эту документацию?

  • @TakemuraGoro
    @TakemuraGoro 4 роки тому

    Спасибо, мне очень полезно! А версия swagger 3 чем-то отличается в использовании?

    • @pavelzloi
      @pavelzloi  4 роки тому +1

      Добрый день! Скорее всего Вы имеете ввиду не 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, новая логика описания авторизации, плюс новые схемы и типы данных добавили.
      Мне к сожалению не доводилось делать перенос на новую версию спецификаций, но подозреваю, что большого труда это не составит, да и наверняка уже есть готовые утилиты под это дело.

    • @TakemuraGoro
      @TakemuraGoro 4 роки тому

      @@pavelzloi да, именно про это, спасибо. Я все пытаюсь найти в виде аннотаций, практические примеры. Но видимо пока еще никто не запилил.

    • @pavelzloi
      @pavelzloi  4 роки тому

      Try this, Luke mermade.org.uk/openapi-converter :)
      Тут типа надо вставить json файлик, который генерит свагер, в конвертер и в ответе будет тоже самое, но в формате спецификаций новой версии.
      А вот если это надо в пхп коде править согласен, тема не очень освещённая, если бы мне надо было решать задачу про переход с 2.0 на 3.0, я бы делал так: сконвертировал бы сначала конфиг и изучил различия, потом подгонял бы пхп под новую спеку, читая параллельно доку про разметку.
      Вот Вам идейка, если хотите то можете запилить тестовый проектик (без персональных данных и всего такого за что Вас может пожурить начальство) на гитхабе и скинуть мне ссылочку, а я запишу видео про перенос конкретно Вашего тестового проекта с 2.0 на 3.0
      UPD: Typos fixed

    • @TakemuraGoro
      @TakemuraGoro 4 роки тому

      @@pavelzloi да я только начал изучать и вот сижу, ломаю голову. Сначала освоить второй, а потом переползать на третий, или искать ответы сразу на третьей версии.

    • @pavelzloi
      @pavelzloi  4 роки тому

      Лично я сразу начал с OpenAPI 3.0 так как оказалось, что найти рабочие утилиты под Swagger было не просто, да и все либы которые я нашёл на гитхабе рекомендуют отказываться от Swagger и удаляют/удалили его поддержку и полностью перешли на OpenAPI спецификации.

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

    и как установить??????????????????????

  • @bekanur98
    @bekanur98 3 роки тому +1

    Почему наши русские блогеры в обучающих видео так много "болтают", ненужных информаций очень много. (

    • @doolatbekaldaberdiev5334
      @doolatbekaldaberdiev5334 3 роки тому

      Ушуну жон эле койбоптурсунда🤣

    • @bekanur98
      @bekanur98 3 роки тому

      @@doolatbekaldaberdiev5334 сага пох эмеспи

  • @AmitRoy-dz1qb
    @AmitRoy-dz1qb 5 років тому

    please give me the github link of api.haipit.news swagger project.. Thank you

    • @pavelzloi
      @pavelzloi  5 років тому

      Hello! Sorry. but this project is not an open source, but I can provide to you samples of some non-important swagger models.

  • @maxnag-dev
    @maxnag-dev 4 роки тому

    Спасибо, именно то, что искал!
    Но зачем так коверкать английские слова - сом (some), валюе (value) - что это???? Ты же по-русски не коверкаешь слова!

    • @pavelzloi
      @pavelzloi  4 роки тому

      Большое спасибо за комментарий! Есть кстати ещё небольшое дополнение про openapi на канале. А насчёт коверканья слов, так это был рофл, не переживайте, на английском я говорю нормально :)

    • @maxnag-dev
      @maxnag-dev 4 роки тому

      @@pavelzloi спасибо за дополнение по ОпенАПИ, реально полезная тема. А по поводу приколов с английским, я ейчас переехал в другую страну и неверное произношение так стало резать слух! Сразу такая аларма в голове возникает!

    • @pavelzloi
      @pavelzloi  4 роки тому

      @@maxnag-dev лично я общаюсь на английском по работе последние года три-четыре, начал спокойно относиться к любому произношению/акценту и даже стал понимать людей из Индии и Австралии :)

    • @maxnag-dev
      @maxnag-dev 4 роки тому

      @@pavelzloi мне пока трудно понять индусов, часть из них так говорят, что теряю контекст) а у нас их целый офис

  • @smiler999ful
    @smiler999ful 5 років тому

    Как познать php с нуля?

    • @pavelzloi
      @pavelzloi  5 років тому

      Как и любую другую профессию ;) учиться, практиковать, не бояться трудностей, критически подходить к знаниям. Через 1000 часов практики будешь мастером в почти любой области.