/**
* @OA\Get(path="/api/article",
* tags={"文章管理"},
* summary="文章列表",
* @OA\Parameter(name="token", in="header", description="token", @OA\Schema(type="string", default="123456")),
* @OA\Parameter(name="page", in="query", description="页码", @OA\Schema(type="int", default="1")),
* @OA\Parameter(name="limit", in="query", description="行数", @OA\Schema(type="int", default="10")),
* @OA\Response(response="200", description="The User")
* )
*/
public function index()
{
$limit = $this->request->param('limit/d', 10);
$data = ArticleModel::paginate($limit);
return $this->jsonReturn(200, 'success', $data);
}
/**
* @OA\Post(path="/api/article",
* tags={"文章管理"},
* summary="新增文章",
* @OA\Parameter(name="token", in="header", description="token", @OA\Schema(type="string")),
* @OA\RequestBody(
* @OA\MediaType(
* mediaType="multipart/form-data",
* @OA\Schema(
* @OA\Property(description="文章名称", property="title", type="string", default="dd"),
* @OA\Property(description="文章内容", property="content", type="string"),
* required={"title", "content"})
* )
* ),
* @OA\Response(response="200", description="successful operation")
* )
*/
public function save()
{
$param = $this->request->post();
$rule = [
'title' => 'require',
'content' => 'require'
];
$param = array_intersect_key($param, $rule);
try {
$this->validate($param, $rule);
} catch (ValidateException $e) {
return $this->jsonReturn(412, $e->getError());
}
ArticleModel::create([
'title' => $param['title'],
'content' => $param['content'],
'created_at' => date('Y-m-d H:i:s')
]);
return $this->jsonReturn();
}
/**
* @OA\Get(path="/api/article/{id}",
* tags={"文章管理"},
* summary="文章详情",
* @OA\Parameter(name="token", in="header", description="token", @OA\Schema(type="string")),
* @OA\Parameter(name="id", in="path", description="文章id", @OA\Schema(type="int")),
* @OA\Response(response="200", description="The User")
* )
*/
public function read($id)
{
$data = ArticleModel::whereId($id)->find();
return $this->jsonReturn(200, 'success', $data);
}
/**
* @OA\Put(path="/api/article/{id}",
* tags={"文章管理"},
* summary="编辑文章",
* @OA\Parameter(name="token", in="header", description="token", @OA\Schema(type="string")),
* @OA\Parameter(name="id", in="path", description="文章id", @OA\Schema(type="int")),
* @OA\RequestBody(
* @OA\MediaType(
* mediaType="content-type/json",
* @OA\Schema(
* @OA\Property(description="文章名称", property="title", type="string"),
* @OA\Property(description="文章内容", property="content", type="string"),
* required={"title", "content"})
* )
* ),
* @OA\Response(response="200", description="successful operation")
* )
*/
public function update($id)
{
$param = $this->request->put();
$rule = [
'title' => 'require',
'content' => 'require'
];
$param = array_intersect_key($param, $rule);
try {
$this->validate($param, $rule);
} catch (ValidateException $e) {
return $this->jsonReturn(412, $e->getError());
}
ArticleModel::whereId($id)->update([
'title' => $param['title'],
'content' => $param['content'],
'updated_at' => date('Y-m-d H:i:s')
]);
return $this->jsonReturn();
}
/**
* @OA\Delete(path="/api/article/{id}",
* tags={"文章管理"},
* summary="删除文章",
* @OA\Parameter(name="token", in="header", description="token", @OA\Schema(type="string")),
* @OA\Parameter(name="id", in="path", description="文章id", @OA\Schema(type="int")),
* @OA\Response(response="200", description="The User")
* )
*/
public function delete($id)
{
ArticleModel::destroy($id);
return $this->jsonReturn();
}