swagger-php integration with yii2.
Integration swagger-ui with swagger-php.
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist light/yii2-swagger "~3.0" --dev
or add
"light/yii2-swagger": "~3.0"
to the require section of your composer.json
file.
Configure two action as below:
public function actions()
{
return [
//The document preview addesss:https://api.yourhost.com/site/doc
'doc' => [
'class' => 'light\swagger\SwaggerAction',
'restUrl' => \yii\helpers\Url::to(['/site/api'], true),
],
//The resultUrl action.
'api' => [
'class' => 'light\swagger\SwaggerApiAction',
//The scan directories, you should use real path there.
'scanDir' => [
Yii::getAlias('@api/modules/v1/swagger'),
Yii::getAlias('@api/modules/v1/controllers'),
Yii::getAlias('@api/modules/v1/models'),
Yii::getAlias('@api/models'),
],
//The security key
'api_key' => 'balbalbal',
],
];
}
For security, you can config api key for protection.
public function actions()
{
return [
// ...
'api' => [
// ...
'cache' => 'cache',
'cacheKey' => 'api-swagger-cache', // default is 'api-swagger-cache'
],
];
}
Access clear cache url YOUR_API_URL?clear-cache
or YOUR_API_URL?api_key=YOUR_API_KEY&clear-cache
Example: curl 'https://localhost/v1/swagger/api?clear-cache'
you will see: Succeed clear swagger api cache.
If there also some confused, you can refer the Demo.