我在我的 yii2 应用程序中运行了一个 REST api。我从我的 AR 模型扩展了我的 api 模型,并使用该fields()
函数来定义 api 响应字段。
/**
* @SWG\Definition(
* type="object"
* )
*/
class Person extends \common\models\Person implements Linkable {
public function fields() {
return ['id',
'name',
'first-name' => 'first_name'
];
}
public function getLinks() {
return [
Link::REL_SELF => Url::to(['person/view', 'id' => $this->id], true),
];
}
我的活动控制器是最简单的实现
use yii\rest\ActiveController;
/**
* @SWG\Info(title="My First API", version="0.1")
*/
class PersonController extends ActiveController {
public $modelClass = 'api\modules\v1\models\Person';
}
到目前为止,一切正常。然后我想添加 Swagger-php 来记录我的 API:我使用https://packagist.org/packages/light/yii2-swagger。配置有效,我有我的 swagger-ui 页面/json。
下一步是开始添加文档...但是在所有 Swagger-php 示例或https://github.com/lichunqiang/yii2-swagger-demo上,注释都在模型字段和控制器方法上。问题在于,由于 ActiveRecord 和fields()
函数,这些在代码中没有明确显示。
有没有办法结合 swagger-php 和 ActiveController?