【发布时间】:2017-08-06 08:24:57
【问题描述】:
我正在使用 swagger-php 为我使用 Yii2 构建的 REST API 创建文档。此外,我使用的是 Yii2 scenario feature,这意味着我可以将同一模型重复用于多种用途。作为示例,请考虑以下用户类的最小示例:
/**
* @SWG\Definition(definition="UserLogin", required={"username", "login_password"}, type="object", @SWG\Xml(name="UserLogin"))
*/
class User extends ActiveRecord
{
const SCENARIO_LOGIN = 'login';
const SCENARIO_CREATE = 'create';
public function scenarios()
{
$scenarios = parent::scenarios();
$scenarios[self::SCENARIO_LOGIN] = ['username', 'login_password'];
$scenarios[self::SCENARIO_CREATE] = ['username', 'firstname'];
return $scenarios;
}
/**
* Password
* @var string
* @SWG\Property(example="secret_password")
*/
public $login_password;
/**
* Password
* @var string
* @SWG\Property(example="admin")
*/
public $username;
/**
* firstname
* @var string
* @SWG\Property(example="SomeName")
*/
public $firstname;
}
Swagger 定义现在将包括所有字段,但只需要 username 和 login_password。相反,我需要的是与定义的场景匹配的两个不同定义。在这个例子中,这将是:
- 定义
UserLogin,包括字段username和login_password - 定义
UserCreate,包括字段username和名字` - 定义
User,包括所有字段
如何使用 swagger-php 实现这一点?
【问题讨论】:
-
swagger-php github上有一个关于它的讨论:github.com/zircote/swagger-php/issues/39但是它还没有实现
-
检查我下面的答案。
标签: php swagger swagger-php