private IEnumerable <string> GetDiscoveryUrls(HttpRequestMessage swaggerRequest) { var basePath = _swaggerSpecConfig.BasePathResolver(swaggerRequest); if (_swaggerSpecConfig.Versions == null) { return new[] { basePath + "/swagger/api-docs" } } ; return(_swaggerSpecConfig.Versions .Select(version => String.Format("{0}/swagger/{1}/api-docs", basePath, version))); }
protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var swaggerProvider = _config.GetSwaggerProvider(request.GetConfiguration().Services.GetApiExplorer()); var basePath = _config.BasePathResolver(request); var version = _config.TargetVersionResolver(request); object resourceName; request.GetRouteData().Values.TryGetValue("resourceName", out resourceName); var content = (resourceName == null) ? ContentFor(swaggerProvider.GetListing(basePath, version)) : ContentFor(swaggerProvider.GetDeclaration(basePath, version, resourceName.ToString())); return(Task.Factory.StartNew(() => new HttpResponseMessage(HttpStatusCode.OK) { Content = content })); }