Привет, я создаю фиктивный API, используя спецификации swagger-php. я скачал пакет swagger-php с github. Также я создал действительный файл JSON, используя аннотации php. Теперь я застрял в связывании операций JSON Swagger с методами контроллера.
Мой файл контроллера:
/**
* @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()
{
}
Я использовал рамки codeigniter и для этого URL / Метод-имя / имя хост-контроллер.
Так что, если ваше имя контроллера приветствуется и метод helloWorld, то в файле swagger путь: / добро пожаловать / привет слово а также размещаем: локальный. При нажатии кнопки «попробовать» URL-адрес запроса будет
локальный / Добро пожаловать / helloWord.
Других решений пока нет …