public object Get(ResourceRequest request) { var httpReq = RequestContext.Get<IHttpRequest>(); var path = "/" + request.Name; var map = EndpointHost.ServiceManager.ServiceController.RestPathMap; var paths = new List<RestPath>(); var basePath = httpReq.GetApplicationUrl(); foreach (var key in map.Keys) { paths.AddRange(map[key].Where(x => x.Path == path || x.Path.StartsWith(path + "/"))); } return new ResourceResponse { ResourcePath = path, BasePath = basePath, Apis = new List<MethodDescription>(paths.Select(FormateMethodDescription).ToArray()) }; }
public object Get(ResourceRequest request) { var httpReq = Request; var path = "/" + request.Name; var map = HostContext.ServiceController.RestPathMap; var paths = new List<RestPath>(); var basePath = HostContext.Config.WebHostUrl ?? httpReq.GetParentPathUrl().NormalizeScheme(); if (basePath.EndsWith(SwaggerResourcesService.RESOURCE_PATH, StringComparison.OrdinalIgnoreCase)) { basePath = basePath.Substring(0, basePath.LastIndexOf(SwaggerResourcesService.RESOURCE_PATH, StringComparison.OrdinalIgnoreCase)); } var meta = HostContext.Metadata; foreach (var key in map.Keys) { paths.AddRange(map[key].Where(x => (x.Path == path || x.Path.StartsWith(path + "/") && meta.IsVisible(Request, Format.Json, x.RequestType.Name)))); } var models = new Dictionary<string, SwaggerModel>(); foreach (var restPath in paths.SelectMany(x => x.Verbs.Select(y => new {Value = x, Verb = y}))) { ParseModel(models, restPath.Value.RequestType, restPath.Value.Path, restPath.Verb); } var apis = paths.Select(p => FormateMethodDescription(p, models)) .ToArray().OrderBy(md => md.Path).ToList(); return new ResourceResponse { ApiVersion = HostContext.Config.ApiVersion, ResourcePath = path, BasePath = basePath, Apis = apis, Models = models }; }
public object Get(ResourceRequest request) { var httpReq = RequestContext.Get<IHttpRequest>(); var path = "/" + request.Name; var map = EndpointHost.ServiceManager.ServiceController.RestPathMap; var paths = new List<RestPath>(); var basePath = EndpointHost.Config.UseHttpsLinks ? httpReq.GetParentPathUrl().ToHttps() : httpReq.GetParentPathUrl(); if (basePath.ToLower().EndsWith(SwaggerResourcesService.RESOURCE_PATH)) { basePath = basePath.Substring(0, basePath.ToLower().LastIndexOf(SwaggerResourcesService.RESOURCE_PATH)); } foreach (var key in map.Keys) { paths.AddRange(map[key].Where(x => x.Path == path || x.Path.StartsWith(path + "/"))); } var models = new Dictionary<string, SwaggerModel>(); foreach (var restPath in paths) { ParseModel(models, restPath.RequestType); } return new ResourceResponse { ResourcePath = path, BasePath = basePath, Apis = new List<MethodDescription>(paths.Select(p => FormateMethodDescription(p, models)).ToArray().OrderBy(md => md.Path)), Models = models }; }
public object Get(ResourceRequest request) { var httpReq = RequestContext.Get<IHttpRequest>(); var path = "/" + request.Name; var map = HostContext.ServiceController.RestPathMap; var paths = new List<RestPath>(); var basePath = HostContext.Config.WebHostUrl; if (basePath == null) { basePath = HostContext.Config.UseHttpsLinks ? httpReq.GetParentPathUrl().ToHttps() : httpReq.GetParentPathUrl(); } if (basePath.EndsWith(SwaggerResourcesService.RESOURCE_PATH, StringComparison.OrdinalIgnoreCase)) { basePath = basePath.Substring(0, basePath.LastIndexOf(SwaggerResourcesService.RESOURCE_PATH, StringComparison.OrdinalIgnoreCase)); } var meta = HostContext.Metadata; foreach (var key in map.Keys) { paths.AddRange(map[key].Where(x => (x.Path == path || x.Path.StartsWith(path + "/") && meta.IsVisible(Request, Format.Json, x.RequestType.Name)))); } var models = new Dictionary<string, SwaggerModel>(); foreach (var restPath in paths) { ParseModel(models, restPath.RequestType); } return new ResourceResponse { ResourcePath = path, BasePath = basePath, Apis = new List<MethodDescription>(paths.Select(p => FormateMethodDescription(p, models)).ToArray().OrderBy(md => md.Path)), Models = models }; }
public object Get(ResourceRequest request) { var httpReq = RequestContext.Get<IHttpRequest>(); var path = "/" + request.Name; var map = EndpointHost.ServiceManager.ServiceController.RestPathMap; var paths = new List<RestPath>(); var basePath = httpReq.GetParentPathUrl(); if (basePath.ToLower().EndsWith(SwaggerResourcesService.RESOURCE_PATH)) { basePath = basePath.Substring(0, basePath.ToLower().LastIndexOf(SwaggerResourcesService.RESOURCE_PATH)); } foreach (var key in map.Keys) { paths.AddRange(map[key].Where(x => x.Path == path || x.Path.StartsWith(path + "/"))); } return new ResourceResponse { ResourcePath = path, BasePath = basePath, Apis = new List<MethodDescription>(paths.Select(FormateMethodDescription).ToArray()) }; }