Как сгенерировать код базовой аутентификации с помощью NSwagStudio? - PullRequest
0 голосов
/ 15 января 2019

Я использую NSwagStudio для генерации клиентских классов / кода из файла JSON Swagger 2.0.

Ранее он генерировал следующий код аутентификации:

//Authentication
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes("username:password");
string encodedAuth = System.Convert.ToBase64String(plainTextBytes);
request_.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", encodedAuth);

Теперь он не генерирует вышеупомянутый заголовок Authorization. Какие изменения я должен внести в файл JSON, чтобы гарантировать, что сгенерированный код имеет код аутентификации, как указано выше?

1 Ответ

0 голосов
/ 05 февраля 2019

Для определения аутентификации в спецификации OpenAPI 2.0 используются два ключевых слова:

  • securityDefinitions
  • security

securityDefinitions описывает тип защиты (например, Basic, API-ключ и т. Д.), А security применяет его ко всем или отдельным операциям. Без security, securityDefinitions не имеет никакого эффекта.

Если все операции используют обычную аутентификацию, примените security на корневом уровне:

{
  "swagger": "2.0",

  "securityDefinitions": {
    "basicAuth": {
      "type": "basic"
    }
  },
  "security": [
    {
      "basicAuth": []
    }
  ],
  ...
}

Если в конкретной операции используется базовая аутентификация, примените security к этой конкретной операции:

{
  "swagger": "2.0",

  "securityDefinitions": {
    "basicAuth": {
      "type": "basic"
    }
  },
  "paths": {
    "/foo": {
      "get": {
        "security": [
          {
            "basicAuth": []
          }
        ],
        ...
      }
    }
  },
  ...
}

Дополнительная информация: Базовая аутентификация (OpenAPI 2.0)

...