0

プロジェクトでswagger-phpを使用すると、実稼働サーバーで「オブジェクトに必要なプロパティがありません([\"paths\"])」という検証エラーが発生します。このエラーにもかかわらず、swagger UI は正常に動作しています。

私のphpファイルの注釈:

/**<br />
 * @SWG\Swagger(<br />
 *  @SWG\Info(<br />
 *      title="Заголовок",<br />
 *      description="Описпание",<br />
 *      contact={<br />
 *          "name": "Дмитрий Сабиров",<br />
 *          "email": "test@yandex.ru"<br />
 *      },<br />
 *      license={<br />
 *          "name": "MIT",<br />
 *          "url": "https://opensource.org/licenses/MIT"<br />
 *      },<br />
 *      version="1.0.0"<br />
 *  ),<br />
 *  schemes={"http"},<br />
 *  host=API_HOST,<br />
 *  basePath="/api"<br />
 * )<br />
 */<br />

/**<br />
 * @SWG\Get(<br />
 *  description="Проверка существования пользователя с данным емайлом.",<br />
 *  path="/users/check-email",<br />
 *  produces={"application/json"},<br />
 *  @SWG\Parameter(<br />
 *          name="email",<br />
 *          in="query",<br />
 *          description="проверяемый емайл",<br />
 *          required=true,<br />
 *          type="string"<br />
 *  ),<br />
 *  @SWG\Response(<br />
 *    response=200,<br />
 *    description="Если пользователь не существует - создаётся и ысылается письмо.",<br />
 *    @SWG\Schema(<br />
 *          type="object",<br />
 *          @SWG\Items(<br />
 *              @SWG\Property(<br />
 *                  property="emailExist",<br />
 *                  type="boolean"<br />
 *              ),<br />
 *              @SWG\Property(<br />
 *                  property="userCreated",<br />
 *                  type="boolean"<br />
 *              ),<br />
 *              @SWG\Property(<br />
 *                  property="sentActivationEmail",<br />
 *                  type="boolean"<br />
 *              )<br />
 *          ),<br />
 *          example={<br />
 *              "application/json": {<br />
 *                  "emailExist": true,<br />
 *                  "userCreated": false,<br />
 *                  "sentActivationEmail": false<br />
 *              }<br />
 *          }<br />
 *    )<br />
 *  ),<br />
 *  @SWG\Response(<br />
 *     response=500,<br />
 *     description="внутренняя ошибка сервера",<br />
 *  )<br />
 * )<br />
 */<br />

swagger api の応答は次のとおりです。

{
  "swagger": "2.0",
  "info": {
    "title": "Заголовок",
    "description": "Описпание",
    "contact": {
      "name": "Дмитрий Сабиров",
      "email": "test@yandex.ru"
    },
    "license": {
      "name": "MIT",
      "url": "https://opensource.org/licenses/MIT"
    },
    "version": "1.0.0"
  },
  "host": "46.36.218.161",
  "basePath": "/api",
  "schemes": ["http"],
  "paths": {
    "/users/check-email": {
      "get": {
        "description": "Проверка существования пользователя с данным емайлом.",
        "produces": ["application/json"],
        "parameters": [{
          "name": "email",
          "in": "query",
          "description": "проверяемый емайл",
          "required": true,
          "type": "string"
        }],
        "responses": {
          "200": {
            "description": "Если пользователь не существует - создаётся и высылается письмо.",
            "schema": {
              "type": "object",
              "items": {
                "properties": {
                  "emailExist": {
                    "type": "boolean"
                  },
                  "userCreated": {
                    "type": "boolean"
                  },
                  "sentActivationEmail": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "application/json": {
                  "emailExist": true,
                  "userCreated": false,
                  "sentActivationEmail": false
                }
              }
            }
          },
          "500": {
            "description": "внутренняя ошибка сервера"
          }
        }
      }
    }
  },
  "definitions": {}
}

しかし、闊歩UIドキュメントはエラーを返します:

{
  "messages": ["attribute paths is missing"],
  "schemaValidationMessages": [{
    "level": "error",
    "domain": "validation",
    "keyword": "required",
    "message": "object has missing required properties ([\"paths\"])",
    "schema": {
      "loadingURI": "#",
      "pointer": ""
    },
    "instance": {
      "pointer": ""
    }
  }]
}

このエラーをどのように修正しますか?

4

1 に答える 1