Неверный OpenAPI JSON-файл - объект ожидаемого типа, но найденная строка типа для определения безопасности - PullRequest
0 голосов
/ 11 июня 2019

Я получаю ошибку проверки для следующего файла openApi.json, который я пытаюсь настроить, чтобы использовать JWT-аутентификацию для моей службы «Конечные точки» в Google Cloud. Я следую этому руководству - https://cloud.google.com/endpoints/docs/openapi/service-account-authentication#configure_auth. Ошибка может быть легко воспроизведена путем вставки и проверки моего образца с использованием Swagger online parser . Сообщение об ошибке:

Swagger schema validation failed. 
  Expected type object but found type string at #/paths//my/api/get/responses/200/description/securityDefinitions/mySecurityDefinition/x-google-jwks_uri/x-google-issuer/type/flow/authorizationUrl/security/0
JSON_OBJECT_VALIDATION_FAILED

Я бы хотел понять, почему я получаю сообщение Expected type object but found type string. Сообщение об ошибке выглядит так, как будто оно жалуется на определение безопасности, но я не понимаю, почему.

openapi.json

{
 "swagger": "2.0",
 "info": {
  "version": "1.0.0",
  "title": "my-app-hostname.appspot.com"
 },
 "host": "my-app-hostname.appspot.com",
 "basePath": "/api",
 "schemes": [
  "https"
 ],
 "consumes": [
  "application/json"
 ],
 "produces": [
  "application/json"
 ],
 "security" : [
   "mySecurityDefinition"
 ],
 "securityDefinitions": {
    "mySecurityDefinition": {
      "authorizationUrl": "",
      "flow": "implicit",
      "type": "oauth2",
      "x-google-issuer": "myServiceAccountEmailAddress",
      "x-google-jwks_uri": "https://www.googleapis.com/robot/v1/metadata/x509/myServiceAccountEmailAddress"
    }
 },
 "paths": {
  "/my/api": {
   "get": {
    "responses": {
     "200": {
      "description": "A successful response"
     }
    }
   }
  }
 }
}

Что я делаю не так? Если я изменю 1-й объект в массиве security на этот, он не будет проверен, но парсер не выдаст сообщение об ошибке:

 "security" : [
  {
    "mySecurityDefinition": [ ]
  }
 ],
...