dongqiancui9194
dongqiancui9194
2016-09-22 05:57

使用swagger-php中的控制器方法链接Swagger operationId

已采纳

Hi i am creating a dummy api using swagger-php specifications. i have downloaded the swagger-php package from github. Also i have created a valid json file using php Annotations. Now i am stuck with linking the swagger json operations with controller methods .

My controller file is:

/**
 * @SWG\Get(
 *     path="/user",
 *     operationId = "findUser",
 *     description = "finds user in the system",
 *     tags={"user"},
 *     @SWG\Response(
 *         response=200,
 *         description="user response",
 *         @SWG\Schema(
 *             type="array",
 *             @SWG\Items(ref="#/definitions/User")
 *         )
 *     ),
 *     @SWG\Response(
 *         response="default",
 *         description="unexpected error",
 *         @SWG\Schema(
 *             ref="#/definitions/errorModel"
 *         )
 *     )
 * )
 */
public function findUser()
{
}

/**
 * @SWG\Get(
 *     path="/user/{id}",
 *     description="Returns a user based on a single ID",
 *     tags={"user"},
 *     operationId="findUserById",
 *     @SWG\Parameter(
 *         description="ID of pet to fetch",
 *         format="int64",
 *         in="path",
 *         name="id",
 *         required=true,
 *         type="integer"
 *     ),
 *     @SWG\Response(
 *         response=200,
 *         description="user response",
 *         @SWG\Schema(ref="#/definitions/User")
 *     ),
 *     @SWG\Response(
 *         response="default",
 *         description="unexpected error",
 *         @SWG\Schema(ref="#/definitions/errorModel")
 *     )
 * )
 */
public function findUserById()
{
}

/**
 * @SWG\Post(
 *     path="/user",
 *     operationId="addUser",
 *     tags={"user"},
 *     description="Add a new User ",
 *     @SWG\Parameter(
 *         name="id",
 *         in="formData",
 *         description="Unique id",
 *         required=true,
 *         type = "string"
 *     ),
 *    @SWG\Parameter(
 *         name="firstName",
 *         in="formData",
 *         description="first name",
 *         required=true,
 *         type = "string"
 *     ),
 *    @SWG\Parameter(
 *         name="lastName",
 *         in="formData",
 *         description="last name",
 *         required=true,
 *         type = "string"
 *     ),
 *    @SWG\Parameter(
 *         name="email",
 *         in="formData",
 *         description="email",
 *         required=true,
 *         type = "string"
 *     ),
 *   @SWG\Parameter(
 *         name="password",
 *         in="formData",
 *         description="password",
 *         required=true,
 *         type = "string",
 *         format = "password"
 *     ),
 *     @SWG\Response(
 *         response=200,
 *         description="user response",
 *         @SWG\Schema(ref="#/definitions/User")
 *     ),
 *     @SWG\Response(
 *         response="default",
 *         description="unexpected error",
 *         @SWG\Schema(ref="#/definitions/errorModel")
 *     )
 * )
 */
public function addUser()
{

}

/**
 * @SWG\Delete(
 *     path="/user/{id}",
 *     tags={"user"},
 *     description="deletes a single user based on the ID supplied",
 *     operationId="deleteUser",
 *     @SWG\Parameter(
 *         description="ID of user to delete",
 *         format="int64",
 *         in="path",
 *         name="id",
 *         required=true,
 *         type="integer"
 *     ),
 *     @SWG\Response(
 *         response=200,
 *         description="user deleted"
 *     ),
 *     @SWG\Response(
 *         response="default",
 *         description="unexpected error",
 *         @SWG\Schema(ref="#/definitions/errorModel")
 *     )
 * )
 */
public function deleteUser()
{
}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • dsjbest2015 dsjbest2015 5年前

    I have used the framework codeigniter and for that the url is host/controller-name/method-name. So if your controller-name is welcome and method is helloWorld then in swagger file the path: /welcome/helloWord and host:localhost. When try it button is clicked the request url will be localhost/welcome/helloWord.

    点赞 评论 复制链接分享