コード例 #1
0
        private static HelpPageApiModel GenerateApiModel(ApiDescription apiDescription, HttpConfiguration config)
        {
            HelpPageApiModel apiModel = new HelpPageApiModel()
            {
                ApiDescription = apiDescription,
            };

            ModelDescriptionGenerator modelGenerator = config.GetModelDescriptionGenerator();
            HelpPageSampleGenerator sampleGenerator = config.GetHelpPageSampleGenerator();
            GenerateUriParameters(apiModel, modelGenerator);
            GenerateRequestModelDescription(apiModel, modelGenerator, sampleGenerator);
            GenerateResourceDescription(apiModel, modelGenerator);
            GenerateSamples(apiModel, sampleGenerator);

            return apiModel;
        }
コード例 #2
0
        private static HelpPageApiModel GenerateApiModel(ApiDescription apiDescription, HttpConfiguration config)
        {
            var apiModel = new HelpPageApiModel()
            {
                ApiDescription = apiDescription,
            };

            var modelGenerator = config.GetModelDescriptionGenerator();
            var sampleGenerator = config.GetHelpPageSampleGenerator();
            apiModel.UriParameters = apiModel.ApiDescription.GenerateUriParameters(modelGenerator);
            apiModel.RequestModelDescription = apiModel.ApiDescription.GenerateRequestModelDescription(modelGenerator, sampleGenerator);
            apiModel.ResourceDescription = apiModel.ApiDescription.GenerateResponseDescription(modelGenerator);
            GenerateSamples(apiModel, sampleGenerator);

            return apiModel;
        }
コード例 #3
0
        private static HelpPageApiModel GenerateApiModel(ApiDescription apiDescription, HttpConfiguration config)
        {
            HelpPageApiModel apiModel = new HelpPageApiModel()
            {
                ApiDescription = apiDescription,
            };

            if (apiDescription.ActionDescriptor.GetFilterPipeline().Any(x => x.Instance is IAuthorizationFilter))
                apiModel.RequiresAuthorization = true;

            if (apiDescription.ActionDescriptor.GetFilterPipeline().Any(x => x.Instance is CachedAttribute))
                apiModel.IsCached = true;


            ModelDescriptionGenerator modelGenerator = config.GetModelDescriptionGenerator();
            HelpPageSampleGenerator sampleGenerator = config.GetHelpPageSampleGenerator();
            GenerateUriParameters(apiModel, modelGenerator);
            GenerateRequestModelDescription(apiModel, modelGenerator, sampleGenerator);
            GenerateResourceDescription(apiModel, modelGenerator);
            GenerateSamples(apiModel, sampleGenerator);

            return apiModel;
        }
コード例 #4
0
        public void ResourceModel_ReturnsCachedModels_UnusedParameters(string modelName)
        {
            HttpConfiguration config = new HttpConfiguration();
            config.Routes.MapHttpRoute("Default", "{controller}/{unused}/{id}", new { id = RouteParameter.Optional });
            HelpController controller = new HelpController(config);
            ModelDescriptionGenerator modelDescriptionGenerator = config.GetModelDescriptionGenerator();
            ModelDescription expectedModelDescription;
            modelDescriptionGenerator.GeneratedModels.TryGetValue(modelName, out expectedModelDescription);

            ViewResult result = Assert.IsType<ViewResult>(controller.ResourceModel(modelName));
            ViewResult result2 = Assert.IsType<ViewResult>(controller.ResourceModel(modelName));

            Assert.Same(expectedModelDescription, result.Model);
            Assert.Same(result.Model, result2.Model);
        }
コード例 #5
0
        private static HelpPageApiModel GenerateApiModel(ApiDescription apiDescription, HttpConfiguration config)
        {
            HelpPageApiModel apiModel = new HelpPageApiModel
            {
                ApiDescription = apiDescription
            };
            var isAnonymous = apiDescription.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().Any()
                              ||
                              apiDescription.ActionDescriptor.ControllerDescriptor
                                  .GetCustomAttributes<AllowAnonymousAttribute>().Any();

            if (!isAnonymous && apiDescription.ActionDescriptor.GetFilterPipeline().Any(f => f.Instance is IAuthorizationFilter))
                apiModel.RequiresAuthorization = true;
            //var attr = apiDescription.ActionDescriptor.GetCustomAttributes<MetaDataAttribute>().ToList();
            //apiModel.AddedDate = attr.Any() ? attr.First().AddedDate : new DateTime(2014);

            ModelDescriptionGenerator modelGenerator = config.GetModelDescriptionGenerator();
            HelpPageSampleGenerator sampleGenerator = config.GetHelpPageSampleGenerator();
            GenerateUriParameters(apiModel, modelGenerator);
            GenerateRequestModelDescription(apiModel, modelGenerator, sampleGenerator);
            GenerateResourceDescription(apiModel, modelGenerator);
            GenerateSamples(apiModel, sampleGenerator);

            return apiModel;
        }