コード例 #1
0
        private ApiDescriptionModel CreateApiDescriptionModel(ApiDescription apiDescription)
        {
            var apiDescriptionModel = new ApiDescriptionModel
            {
                Description    = null,
                Id             = apiDescription.GetFriendlyId(),
                GroupName      = apiDescription.GroupName,
                HttpMethod     = apiDescription.HttpMethod,
                RelativePath   = apiDescription.RelativePath,
                ApiDescription = apiDescription
            };
            var controllerActionDescriptor = apiDescription.ActionDescriptor as ControllerActionDescriptor;

            if (controllerActionDescriptor != null)
            {
                apiDescriptionModel.IsDeprecated =
                    controllerActionDescriptor
                    .MethodInfo
                    .CustomAttributes
                    .Any(o => o.AttributeType == typeof(ObsoleteAttribute));
            }
            if (!apiDescriptionModel.IsDeprecated && _obsoleteRouteRegex != null) // filter obsolete api route with ObsoleteRoutePathPattern.
            {
                apiDescriptionModel.IsDeprecated = _obsoleteRouteRegex.IsMatch(apiDescriptionModel.RelativePath);
            }
            if (controllerActionDescriptor != null)
            {
                apiDescriptionModel.Description = _documentationProvider.GetDocumentation(controllerActionDescriptor.MethodInfo);
            }
            return(apiDescriptionModel);
        }
コード例 #2
0
        private ApiDescriptionDetailModel CreateApiDescriptionDetailModel(ApiDescriptionModel apiDescriptionModel)
        {
            var apiDescriptionDetailModel = new ApiDescriptionDetailModel
            {
                Id             = apiDescriptionModel.Id,
                Description    = apiDescriptionModel.Description,
                GroupName      = apiDescriptionModel.GroupName,
                HttpMethod     = apiDescriptionModel.HttpMethod,
                RelativePath   = apiDescriptionModel.RelativePath,
                IsDeprecated   = apiDescriptionModel.IsDeprecated,
                ApiDescription = apiDescriptionModel.ApiDescription
            };

            BuildRequestInformation(apiDescriptionDetailModel);
            BuildResponseInformation(apiDescriptionDetailModel);
            return(apiDescriptionDetailModel);
        }