1

我在我的 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?

4

0 回答 0