如何使用NSwagStudio生成基本身份验证代码?

时间:2019-01-15 20:24:32

标签: swagger-2.0 nswag nswagstudio

我正在使用NSwagStudio从Swagger 2.0 JSON文件生成客户端类/代码。

以前,它用于生成以下身份验证代码:

//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 :(得分:0)

要定义身份验证,OpenAPI 2.0规范使用两个关键字:

  • securityDefinitions
  • security

securityDefinitions描述了安全类型(例如,基本,API密钥等),security将其应用于所有或特定的操作。如果没有securitysecurityDefinitions无效。

如果所有操作都使用基本身份验证,请在根级别应用security

{
  "swagger": "2.0",

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

如果特定操作使用基本身份验证,则将security应用于该特定操作:

{
  "swagger": "2.0",

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

更多信息:Basic Authentication (OpenAPI 2.0)