v_i_rus
@v_i_rus

В чём ошибка при формировании API документации Swagger?

Со сваггером не знаком, только изучаю. Задача сформировать документацию апи контроллеров. Поставил аннотацию @OA\Info в главный класс контроллера
namespace App\Http\Controllers;

/**
 * @OA\Info(
 *      version="1.0.0",
 *      title="Documentation",
 *      description="Документация",
 * )
 */

class Controller extends BaseController


Добавил аннотации путей в остальные контроллеры
namespace App\Http\Controllers;

/**
 * @OA\Schema(
 *     title="UserController",
 *     description="UserController",
 *     @OA\Xml(
 *         name="UserController"
 *     )
 * )
 */

class UserController extends Controller
{
    /**
     * @OA\Post(
     * path="/api/users/add",
     *   tags={"add"},
     *   summary="add",
     *   operationId="add",
     *
     *  @OA\Parameter(
     *      name="name",
     *      in="query",
     *      required=true,
     *      @OA\Schema(
     *           type="string"
     *      )
     *   ),
     *   @OA\Parameter(
     *      name="email",
     *      in="query",
     *      required=true,
     *      @OA\Schema(
     *           type="string"
     *      )
     *   ),
     *   @OA\Parameter(
     *      name="password",
     *      in="query",
     *      required=true,
     *      @OA\Schema(
     *          type="string"
     *      )
     *   ),
     *   @OA\Response(
     *      response=200,
     *       description="Success",
     *      @OA\MediaType(
     *           mediaType="application/json",
     *      )
     *   )
     *)
     **/
    /**
     * @param Request $request
     * @return bool
     */
    public function create(Request $request){
        return $this->serviceUser->create($request);
    }
    ....
}


При выполнении команды php artisan l5-swagger:generate
получаю ошибку Required @OA\PathItem() not found

Конфиги не менял. Роуты прописаны верно.
Установлен пакет "darkaonline/l5-swagger": "^8.3"
  • Вопрос задан
  • 1608 просмотров
Решения вопроса 1
v_i_rus
@v_i_rus Автор вопроса
потому что из двух аннотаций подряд будет выбираться последняя. решается их слиянием в одну
/**
     * @OA\Post(
     * path="/api/users/add",
     *   tags={"add"},
     *   summary="add",
     *   operationId="add",
     *
     *  @OA\Parameter(
     *      name="name",
     *      in="query",
     *      required=true,
     *      @OA\Schema(
     *           type="string"
     *      )
     *   ),
     *   @OA\Parameter(
     *      name="email",
     *      in="query",
     *      required=true,
     *      @OA\Schema(
     *           type="string"
     *      )
     *   ),
     *   @OA\Parameter(
     *      name="password",
     *      in="query",
     *      required=true,
     *      @OA\Schema(
     *          type="string"
     *      )
     *   ),
     *   @OA\Response(
     *      response=200,
     *       description="Success",
     *      @OA\MediaType(
     *           mediaType="application/json",
     *      )
     *   )
     *)
     * @param Request $request
     * @return bool
     */
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы