Package Data | |
---|---|
Maintainer Username: | dark-grey |
Maintainer Contact: | sergey.raev@sitesoft.ru (Sergey Raev) |
Package Create Date: | 2017-04-06 |
Package Last Update: | 2019-04-30 |
Language: | PHP |
License: | Unknown |
Last Refreshed: | 2024-11-22 03:08:26 |
Package Statistics | |
---|---|
Total Downloads: | 1,809 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 0 |
Total Watchers: | 0 |
Total Forks: | 0 |
Total Open Issues: | 0 |
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"
$ 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/
routes/api.php
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
Ваши 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
$ 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/
routes/api.php
apis.php
путь для генерации swagger.json