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

  Рет қаралды 2,871

Pavel Zloi aka EvilFreelancer

Pavel Zloi aka EvilFreelancer

Күн бұрын

Пікірлер: 21
@PlayGameToday
@PlayGameToday 4 жыл бұрын
P.S. Твои видео по Open API очень помогают! Я тебе очень благодарен за твой труд!
@dfkkg3453
@dfkkg3453 Жыл бұрын
Круто, спасибо! А можете подсказать, как в свой лара-проект интегрировать клиент, который был сгенерирован через сваггер-кодген? Второй день мучаюсь, ничего не получается.
@pavelzloi
@pavelzloi Жыл бұрын
Привет! А какой клиент имеешь ввиду?
@pavelzloi
@pavelzloi Жыл бұрын
Кстати можешь сразу сюда заходить, это чатик моего канала в телеге t.me/evilfreelancer_chat
@dfkkg3453
@dfkkg3453 Жыл бұрын
@@pavelzloi Ну вот есть стороннее API, есть описание к нему на Сваггере. Я захожу в Swagger Editor, загружаю json-файл с описанием API и нажимаю Generate client -> php. Получаю на выходе архив SwaggerClient-php. В нём уже все методы взаимодействия реализованы. Как его теперь подружить с ларой, чтобы не писать кучу своих методов?
@maxthekeeper
@maxthekeeper 4 жыл бұрын
Привет, Павел! Ого! Не ожидал, что удостоюсь хоть какого-то ответа, а тут ещё и отдельное видео! Спасибо огромное, решение мне подсказал мой более опытный коллега. Но насколько я вижу, оно очень похоже на твоё. И да, Киппа - это моя настоящая фамилия 😊
@pavelzloi
@pavelzloi 4 жыл бұрын
Приветствую, Максим! Да просто так получилось, что пока изучал как лучше сделать, чтобы написать ответное письмо получился типа сценарий для видоса. я погуглил и понял, что тему ссылок внутри респонса, да ещё и на базе конкретной php библиотеки, ещё никто не раскрывал, обычно всё ограничено информацией о том, что это в принципе возможно. PS Фамилия прикольная, я если честно подумал, что это рофл или типа того :) PPS Кстати, скоро будет видос про ещё одну прикольную библиотеку ларки, где в ООП стиле автор предлагает описывать OpenAPI, одно из интересных отличий, что можно генерить доку, которая сразу будет читать инфу о структуре модели из базы.
@maxthekeeper
@maxthekeeper 4 жыл бұрын
@@pavelzloi отлично! Буду ждать, очень интересно )) Вообще, нужные и крайне специфичные вещи описываешь. По крайней мере, я не находил подобного материала, да ещё и в таком объёме.
@Alex-nm9nr
@Alex-nm9nr 3 жыл бұрын
Благодарю за видео. Действительно, очень помогают. А есть способ указать, какие поля в body обязательные и опциональные?
@pavelzloi
@pavelzloi 3 жыл бұрын
Добрый день, если ничего не путаю для этого нужно в настройках полей использовать параметр под названием required, если значение true то в документации обязательное поле будет отмечено звёздочкой * (то есть астериском).
@alver063
@alver063 3 жыл бұрын
Добрый день. А есть ли видео как в swagger задавать возможные значения полей?
@pavelzloi
@pavelzloi 3 жыл бұрын
Добрый день! Под возможными значениями полей Вы имеете ввиду разные типы данных или enum? Боюсь что ни про то ни про другое видосов не было. Я коснулся свагера в общих чертах, ну а все остальное описано в документации.
@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": {}}}, и все ок работает ) Но, спасибо за ответ все равно.
@belamov
@belamov 4 жыл бұрын
а у тебя когда-нибудь были проблемы с синхронизацией такой документации и реальных моделей? так кажется, что за всем этим нужно прям внимательно следить (изменил модели - не забудь изменить доку). мб есть какие-нибудь лайфаки для этого?
@pavelzloi
@pavelzloi 4 жыл бұрын
Приветствую, Дмитрий! Да, такие проблемы иногда возникают (точнее даже, возникали), но решаются они в моём случае очень просто, я сначала правлю доку, где описываю желаемый результат, пишу тесты которые проверяют, что запрос и ответ валидны, а уже потом вношу правки в код.
@dydco_mity
@dydco_mity 4 жыл бұрын
А можно на Laravel 7 установить?
@pavelzloi
@pavelzloi 4 жыл бұрын
Добрый день! Благодарю за комментарий, прощу прощения да долгий ответ. Установить конено же можно, вот список релизов github.com/DarkaOnLine/L5-Swagger/tags на 7ке работает любой l5-swagger после 7.0 включительно.
Laravel и Swagger/OpenAPI
1:07:36
Pavel Zloi aka EvilFreelancer
Рет қаралды 18 М.
Dredd - тестирование OpenAPI/Swagger
10:40
Pavel Zloi aka EvilFreelancer
Рет қаралды 1,2 М.
小丑揭穿坏人的阴谋 #小丑 #天使 #shorts
00:35
好人小丑
Рет қаралды 41 МЛН
They Chose Kindness Over Abuse in Their Team #shorts
00:20
I migliori trucchetti di Fabiosa
Рет қаралды 11 МЛН
Laravel Sluggable - Самый нужный плагин
22:06
Pavel Zloi aka EvilFreelancer
Рет қаралды 2,3 М.
Полный курс Laravel Swagger. REST API  Laravel
1:33:50
Laravel Creative
Рет қаралды 16 М.
JWT авторизация. Основы JWT - механизма.
6:45
Хочу вАйти
Рет қаралды 15 М.
Laravel Jetstream: Add CRUD with User Roles
16:51
Laravel Daily
Рет қаралды 155 М.
Кратко про OpenAPI и Swagger
26:43
IT как Конструктор
Рет қаралды 57 М.
Laravel Code Review: Why NOT Use Repository Pattern?
14:21
Laravel Daily
Рет қаралды 79 М.
Laravel Lighthouse #5 - type Subscription
37:25
Pavel Zloi aka EvilFreelancer
Рет қаралды 1,9 М.
OpenAPI и Swagger Editor - своё описание REST API с нуля
16:35
IT как Конструктор
Рет қаралды 90 М.
小丑揭穿坏人的阴谋 #小丑 #天使 #shorts
00:35
好人小丑
Рет қаралды 41 МЛН