Тёмный

Laravel Swagger/OpenAPI - Ответ на вопрос от зрителя 

Pavel Zloi aka EvilFreelancer
Подписаться 3,7 тыс.
Просмотров 2,8 тыс.
50% 1

Отвечают на запрос одного из зрителей по поводу продвинутой работы с OpenAPI о котором я рассказывал в одном из прошлых видео.
Оригинальное видео про Laravel и Swagger/OpenAPI
• Laravel и Swagger/OpenAPI
Ссылка на репозиторий проекта с исходниками:
github.com/Evi...
Дата типы
swagger.io/doc...
Полезные ссылки:
- Телега: t.me/evilfreel...
- Основной канал: / @pavelzloi
- Live-канал: / @e-freelancerlivechann...
- Twitch: / evilfreelancer
- Twitter: / evilfreelancer
- GitHub: github.com/Evi...
Ссылки на Steam:
- Группа Steam: steamcommunity...
- Рекомендации куратора: store.steampow...
Сделать пожертвование:
- www.donational...
- streamlabs.com...
- ko-fi.com/efre...

Наука

Опубликовано:

 

22 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 21   
@maxthekeeper
@maxthekeeper 4 года назад
Привет, Павел! Ого! Не ожидал, что удостоюсь хоть какого-то ответа, а тут ещё и отдельное видео! Спасибо огромное, решение мне подсказал мой более опытный коллега. Но насколько я вижу, оно очень похоже на твоё. И да, Киппа - это моя настоящая фамилия 😊
@pavelzloi
@pavelzloi 4 года назад
Приветствую, Максим! Да просто так получилось, что пока изучал как лучше сделать, чтобы написать ответное письмо получился типа сценарий для видоса. я погуглил и понял, что тему ссылок внутри респонса, да ещё и на базе конкретной php библиотеки, ещё никто не раскрывал, обычно всё ограничено информацией о том, что это в принципе возможно. PS Фамилия прикольная, я если честно подумал, что это рофл или типа того :) PPS Кстати, скоро будет видос про ещё одну прикольную библиотеку ларки, где в ООП стиле автор предлагает описывать OpenAPI, одно из интересных отличий, что можно генерить доку, которая сразу будет читать инфу о структуре модели из базы.
@maxthekeeper
@maxthekeeper 4 года назад
@@pavelzloi отлично! Буду ждать, очень интересно )) Вообще, нужные и крайне специфичные вещи описываешь. По крайней мере, я не находил подобного материала, да ещё и в таком объёме.
@PlayGameToday
@PlayGameToday 4 года назад
P.S. Твои видео по Open API очень помогают! Я тебе очень благодарен за твой труд!
@belamov
@belamov 4 года назад
а у тебя когда-нибудь были проблемы с синхронизацией такой документации и реальных моделей? так кажется, что за всем этим нужно прям внимательно следить (изменил модели - не забудь изменить доку). мб есть какие-нибудь лайфаки для этого?
@pavelzloi
@pavelzloi 4 года назад
Приветствую, Дмитрий! Да, такие проблемы иногда возникают (точнее даже, возникали), но решаются они в моём случае очень просто, я сначала правлю доку, где описываю желаемый результат, пишу тесты которые проверяют, что запрос и ответ валидны, а уже потом вношу правки в код.
@stolentine
@stolentine 4 года назад
а часть полей из модели можно указать в реквесте?
@pavelzloi
@pavelzloi 4 года назад
Приветствую! В моих проектах я как правило создаю несколько отдельных виртуальных моделей ответа, запроса и требуемых наборов данных (как например в видео), потому так заставить сваггер прятать часть полей из ссылочной модели мне не удалось. Подозреваю, что такого способа в принципе нет, потому как каждый уникальный набор полей отображается отдельно в блоке models ну и плюс в доке об этом не сказано.
@PlayGameToday
@PlayGameToday 4 года назад
Привет, как настроить авторизацию с помощью apiKey на некоторых маршрутах (чтобы глобальный apiKey использовался в запросах, требующих авторизации и автоматически подставлялся в качестве параметра query?)
@pavelzloi
@pavelzloi 4 года назад
Добрый день! Обычно токены передаются через заголовки, но если необходимо настроить их передачу в квере то из коробки в движке Laravel предусмотрен параметр apiKey. В случае если необходимо включить на некоторых эндпоинтах проверку токена тогда надо использовать мидлвейр auth:api (есть так же способ перечислить исключения через $exceptRoutes в настройках мидлвейра).
@PlayGameToday
@PlayGameToday 4 года назад
​@@pavelzloi я уже разобрался, я не использую встроенную аутентификацию ларки. Аутентификация идет в другом слое 3rd-party апи, который вызывается из ларки удаленно. В общем, я уже разобрался. В Controller.php у меня вот такое: * @OA\SecurityScheme( * type="apiKey", * in="query", * name="cookies", * securityScheme="cookieAuth" * ) Дальше контроллеры экстендятся от него. А уже внутри любого контроллера, для метода, который я хочу защитить авторизацией - я пишу директиву: * security={{"cookieAuth": {}}}, и все ок работает ) Но, спасибо за ответ все равно.
@dfkkg3453
@dfkkg3453 Год назад
Круто, спасибо! А можете подсказать, как в свой лара-проект интегрировать клиент, который был сгенерирован через сваггер-кодген? Второй день мучаюсь, ничего не получается.
@pavelzloi
@pavelzloi Год назад
Привет! А какой клиент имеешь ввиду?
@pavelzloi
@pavelzloi Год назад
Кстати можешь сразу сюда заходить, это чатик моего канала в телеге t.me/evilfreelancer_chat
@dfkkg3453
@dfkkg3453 Год назад
@@pavelzloi Ну вот есть стороннее API, есть описание к нему на Сваггере. Я захожу в Swagger Editor, загружаю json-файл с описанием API и нажимаю Generate client -> php. Получаю на выходе архив SwaggerClient-php. В нём уже все методы взаимодействия реализованы. Как его теперь подружить с ларой, чтобы не писать кучу своих методов?
@Alex-nm9nr
@Alex-nm9nr 3 года назад
Благодарю за видео. Действительно, очень помогают. А есть способ указать, какие поля в body обязательные и опциональные?
@pavelzloi
@pavelzloi 3 года назад
Добрый день, если ничего не путаю для этого нужно в настройках полей использовать параметр под названием required, если значение true то в документации обязательное поле будет отмечено звёздочкой * (то есть астериском).
@alver063
@alver063 3 года назад
Добрый день. А есть ли видео как в swagger задавать возможные значения полей?
@pavelzloi
@pavelzloi 3 года назад
Добрый день! Под возможными значениями полей Вы имеете ввиду разные типы данных или enum? Боюсь что ни про то ни про другое видосов не было. Я коснулся свагера в общих чертах, ну а все остальное описано в документации.
@dima_lebid
@dima_lebid 4 года назад
А можно на Laravel 7 установить?
@pavelzloi
@pavelzloi 3 года назад
Добрый день! Благодарю за комментарий, прощу прощения да долгий ответ. Установить конено же можно, вот список релизов github.com/DarkaOnLine/L5-Swagger/tags на 7ке работает любой l5-swagger после 7.0 включительно.
Далее
Dredd - тестирование OpenAPI/Swagger
10:40
Просмотров 1,2 тыс.
Laravel и Swagger/OpenAPI
1:07:36
Просмотров 18 тыс.
Девочки, у вас тоже так? 💅🏻✨
00:17
СЛАДКОЕЖКИ ПОЙМУТ😁@andrey.grechka
00:11
Мама приболела😂@kak__oska
00:16
Просмотров 572 тыс.
Ресурсы во фреймворке Laravel
30:04
Просмотров 4,5 тыс.
Как тестировать Laravel?
1:02:47
Просмотров 17 тыс.
Laravel Code Review: Why NOT Use Repository Pattern?
14:21
Google Pixel 9/Pro Review: Gimmick or Good?
24:05
Просмотров 2,2 млн
Google Pixel 9/Pro Review: Gimmick or Good?
24:05
Просмотров 2,2 млн