Связать операцию Swagger с методами контроллера в swagger-php

Привет, я создаю фиктивный API, используя спецификации swagger-php. Я скачал пакет swagger-php с github. Также я создал действительный файл json, используя аннотации php. Теперь я застрял в связывании операций swagger json с методами контроллера.

Мой файл контроллера:

/**
 * @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()
{
}

person aK26    schedule 22.09.2016    source источник


Ответы (1)


Я использовал фреймворк codeigniter, и для этого URL-адрес host/controller-name/method-name. Итак, если ваше имя контроллера приветствуется, а метод — helloWorld, то в файле swagger укажите путь: /welcome/helloWord и host:localhost. При нажатии кнопки «Попробовать» URL-адрес запроса будет localhost/welcome/helloWord.

person aK26    schedule 18.10.2016