Я использую Swagger API
. Это дает мне желаемый результат. Но во время тестирования я изменил ключ API на какой-то неправильный ключ API (ожидая, что он выдаст ошибку), но он все равно дал мне правильный результат (который я получал с правильным ключом API). Почему это происходит?
Ниже приведен код, который у меня есть в SwaggerConfig.cs
:
using System.Web.Http;
using WebActivatorEx;
using CalendarDetails;
using Swashbuckle.Application;
using System;
using System.Xml.XPath;
using System.Web.Configuration;
[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
namespace CalendarDetails
{
public class SwaggerConfig
{
public static void Register()
{
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "CalendarDetails");
c.ApiKey(WebConfigurationManager.AppSettings["ApiKey"])
.Description("API Key Authentication")
.Name("X-ApiKey")
.In("header");
c.IncludeXmlComments(GetXmlCommentsPath());
})
.EnableSwaggerUi(c =>
{
c.EnableApiKeySupport("X-ApiKey", "header");
});
}
private static string GetXmlCommentsPath()
{
return System.AppDomain.CurrentDomain.BaseDirectory + @"\bin\CalendarDetails.XML";
}
}
}
Не могли бы вы сообщить мне, в чем я ошибаюсь?
Под «правильным выводом» я имел в виду тот же вывод, который я получал с правильным ключом API. Я ожидал, что если я дам какой-либо ключ API, кроме правильного ключа API, он должен выдать ошибку. Разве не должно?
Извините. Я должен быть более точным: если вы используете пользовательский интерфейс swagger для выполнения конечной точки api и предоставили swagger с неправильным ключом api, то это API, который используется, а не swagger, ведет себя ненадлежащим образом.
Какую версию Swashbuckle вы используете?
Определите, что вы подразумеваете под «правильным выводом». Конечная точка Swagger не аутентифицирована. Предоставляемый ключ API должен гарантировать, что когда вы используете пользовательский интерфейс swagger для «тестирования» вызова API, который он документирует, ключ API будет передан. Так что, если это все еще дает вам правильный результат, то ваш фактический API на самом деле не проверяет ключ API.