Я пытаюсь заставить мой проект веб-API использовать красивую документацию Swagger и т.д. (http://swagger.io/)
Я использую Swashbuckle для .NET, установленную из NuGet, и использую версию 4.0.1
Я был в состоянии установить и использовать Swagger. На данный момент все кажется нормальным. Единственное препятствие, которое у меня есть, это отключение ключа API и возможность использовать OAuth, как в примере с PetStore (http://petstore.swagger.wordnik.com/#!/pet/addPet)
Я перепробовал все, что мог найти в Интернете. Позвольте мне перечислить их ниже:
Во-первых, вот мой Startup.cs
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
WebApiConfig.Register(config);
Swashbuckle.Bootstrapper.Init(config);
}
Теперь мой SwaggerConfig.cs:
public static void Register()
{
Swashbuckle.Bootstrapper.Init(GlobalConfiguration.Configuration);
SwaggerSpecConfig.Customize(c =>
{
c.IgnoreObsoleteActions();
c.IncludeXmlComments(GetXmlCommentsPath());
c.ApiInfo(new Info
{
Title = "Work you",
Description = "testing some stuffs",
Contact = "[email protected]"
});
c.Authorization("oauth2", new Authorization
{
Type = "oauth2",
Scopes = new List<Scope>
{
new Scope { ScopeId = "products.read", Description = "View products" },
new Scope { ScopeId = "products.manage", Description = "Manage products" }
},
GrantTypes = new GrantTypes
{
ImplicitGrant = new ImplicitGrant
{
LoginEndpoint = new LoginEndpoint
{
Url = "https://www.mysecure.website.com"
},
TokenName = "access_token"
}
}
});
});
SwaggerUiConfig.Customize(c =>
{
c.EnableOAuth2Support("client_id", "test-realm", "app Name");
var thisAssembly = typeof(SwaggerConfig).Assembly;
c.SupportHeaderParams = true;
c.DocExpansion = DocExpansion.List;
c.SupportedSubmitMethods = new[] { HttpMethod.Get, HttpMethod.Post, HttpMethod.Put, HttpMethod.Head };
c.EnableDiscoveryUrlSelector();
});
}
У меня есть папка SwaggerExtensions, там у меня есть файлы, которые должны быть запрошены. Например:
У меня есть классы, украшенные:
[ScopeAuthorize("this.scope")]
Тем не менее, опция OAuth никогда не отображается для меня на странице чванства. Я также не вижу, где я могу вводить пользовательские заголовки.
Я вижу, что заголовок и описание документации, адрес электронной почты и т.д. Читаются из файла SwaggerConfig.cs, поэтому я знаю, что он по крайней мере читается.
Я не могу понять это. :(
Есть идеи?