sitesoft / laravel-apis
Init swagger and connect to Sitesoft APIS
This package's canonical repository appears to be gone and the package has been frozen as a result. Email us for help if needed.
Installs: 1 810
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/sitesoft/laravel-apis
Requires
- php: >=5.4.0
- barryvdh/laravel-cors: *
- sitesoft/laravel-config-writer: *
- zircote/swagger-php: ^3.0
This package is not auto-updated.
Last update: 2025-07-20 01:08:12 UTC
README
1 . Установить через composer
$ composer require sitesoft/laravel-apis
2 . В файле config/app.php добавить в providers
Sitesoft\LaravelApis\ApisServiceProvider::class
3 . Чтобы разрешить CORS для всех api запросов, добавьте HandleCors middleware в $middlewareGroups в файле app/Http/Kernel.php:
(См. раздел "Поддержка Cross-Origin Resource Sharing (CORS)")
protected $middlewareGroups = [
'web' => [
// ...
],
'api' => [
// ...
\Barryvdh\Cors\HandleCors::class,
],
];
4 . Опубликовать файл настроек apis.php из пакета:
$ php artisan vendor:publish --provider="Sitesoft\LaravelApis\ApisServiceProvider"
Использование
Добавление нового проекта на Sitesoft APIS
$ php artisan apis:create-project <name> <version> <url> --path=<path>
где
<name>- имя нового проекта (можно использовать кириллицу)<version>- версия апи (только цифры)<url>- базовый url к апи (должен начинаться сhttpилиhttps, напримерhttp://test.com/api)<path>- путь к api директории относительно папкиapp/Http/Controllers/(не обязательно, по умолчаниюApi)
например, если файлы вашего api находятся в папке app/Http/Controllers/Api/v1 то команда будет следующей:
$ php artisan apis:create-project MyApi 1 http://test.com/api --path="Api/v1"
эта команда сделает следующее:
- сгенерирует токен и запишет в файл
config/apis.php - добавит
SwaggerController.phpвapp/Http/Controllers/Api/v1/ - добавит маршрут для swagger'а в файл
routes/api.php - сделает запрос к Sitesoft APIS на добавление нового проекта
- добавит в файл настроек
apis.phpпуть для генерацииswagger.json
Генерация swagger.json
Данный файл генерируется из ваших doc-блоков библиотекой swagger-php отдельно для каждой версии api.
$ php artisan swaggen
Папки для генерации задаются в файле настроек config/apis.php в параметре paths.
Swagger просканирует эти папки и создаст в каждой свой swagger.json.
Каждый такой файл должен быть доступен из вне, для этого при apis:create-project и apis:add-version по пути указанному в <path> создается файл SwaggerController.php
Поддержка Cross-Origin Resource Sharing (CORS)
Ваши api методы должны возвращать заговолок Access-Control-Allow-Origin для того, чтобы иметь возможность просмотреть ответ прямо на Sitesoft APIS.
Для поддержки CORS используется barryvdh/laravel-cors, для его работы достаточно выполнить пункт 3 из раздела Установка. Или вы можете включить CORS только для некоторых маршрутов:
Route::group(['middleware' => 'cors'], function(){
Route::get('/create', 'Api\CreateController@index');
Route::post('/add', 'Api\AddController@index');
Route::delete('/delete', 'Api\DeleteController@index');
});
или так
Route::get('/create', 'Api\CreateController@index')->middleware('cors');
Route::post('/add', 'Api\AddController@index')->middleware('cors);
Route::delete('/delete', 'Api\DeleteController@index')->middleware('cors');
У модуля laravel-cors также есть возможность настройки https://github.com/barryvdh/laravel-cors#configuration
Добавление новой версии на Sitesoft APIS
$ php artisan apis:add-version <version> <url> --path=<path>
где
<version>- версия апи (только цифры)<url>- базовый url к апи (должен начинаться сhttpилиhttps, напримерhttp://test.com/api/v2)<path>- путь к api директории относительно папкиapp/Http/Controllers/(не обязательно, по умолчаниюApi_v<version>)
например, если ваши файлы с новой версией api находятся в папке app/Http/Controllers/Api/v2 (относительно корня проекта) то команда будет следующей:
$ php artisan apis:add-version 2 http://test.com/api/v2 --path="Api/v2"
эта команда сделает следующее:
- добавит
SwaggerController.phpвapp/Http/Controllers/Api/v2/ - добавит маршрут для swagger'а в файл
routes/api.php - сделает запрос к Sitesoft APIS на добавление новой версии проекта
- добавит в файл настроек
apis.phpпуть для генерацииswagger.json