protected internal IRouteDetails GetRouteDetails(Route route)
        {
            var routeDetails = new AspNetCoreRouteDetails();

            routeDetails.HttpMethods   = GetHttpMethods(route);
            routeDetails.RouteTemplate = route.RouteTemplate;

            return(routeDetails);
        }
Ejemplo n.º 2
0
        protected internal IRouteDetails GetRouteDetails(ApiDescription desc)
        {
            var routeDetails = new AspNetCoreRouteDetails
            {
                HttpMethods = GetHttpMethods(desc)
            };

            if (desc.ActionDescriptor.AttributeRouteInfo?.Template != null)
            {
                routeDetails.RouteTemplate = desc.ActionDescriptor.AttributeRouteInfo.Template;
            }
            else
            {
                ControllerActionDescriptor cdesc = desc.ActionDescriptor as ControllerActionDescriptor;
                routeDetails.RouteTemplate = $"/{cdesc.ControllerName}/{cdesc.ActionName}";
            }

            List <string> produces = new List <string>();

            foreach (var respTypes in desc.SupportedResponseTypes)
            {
                foreach (var format in respTypes.ApiResponseFormats)
                {
                    produces.Add(format.MediaType);
                }
            }

            routeDetails.Produces = produces;

            List <string> consumes = new List <string>();

            foreach (var reqTypes in desc.SupportedRequestFormats)
            {
                consumes.Add(reqTypes.MediaType);
            }

            routeDetails.Consumes = consumes;

            return(routeDetails);
        }
Ejemplo n.º 3
0
        protected internal IRouteDetails GetRouteDetails(ActionDescriptor desc)
        {
            var routeDetails = new AspNetCoreRouteDetails
            {
                HttpMethods = desc.ActionConstraints?.OfType <HttpMethodActionConstraint>().SingleOrDefault()?.HttpMethods.ToList() ?? new List <string> {
                    MappingDescription.ALL_HTTP_METHODS
                },
                Consumes = new List <string>(),
                Produces = new List <string>()
            };

            if (desc.AttributeRouteInfo?.Template != null)
            {
                routeDetails.RouteTemplate = desc.AttributeRouteInfo.Template;
            }
            else
            {
                var cdesc = desc as ControllerActionDescriptor;
                routeDetails.RouteTemplate = $"/{cdesc.ControllerName}/{cdesc.ActionName}";
            }

            foreach (var filter in desc.FilterDescriptors.Where(f => f.Filter is ProducesAttribute).Select(f => (ProducesAttribute)f.Filter))
            {
                foreach (var format in filter.ContentTypes)
                {
                    routeDetails.Produces.Add(format);
                }
            }

            foreach (var filter in desc.FilterDescriptors.Where(f => f.Filter is ConsumesAttribute).Select(f => (ConsumesAttribute)f.Filter))
            {
                foreach (var format in filter.ContentTypes)
                {
                    routeDetails.Consumes.Add(format);
                }
            }

            return(routeDetails);
        }