コード例 #1
0
        public void ConfigureOpenApiMetadataRoutes(HttpConfiguration config, bool useSchoolYear)
        {
            Preconditions.ThrowIfNull(config, nameof(config));

            config.Routes.MapHttpRoute(
                name: "OpenApiMetadataIdentity",
                routeTemplate: "metadata/{otherName}/v{identityVersion}/" + RouteConfigurationHelper.CreateSchoolYearSegment(useSchoolYear) +
                "swagger.json",
                defaults: RouteConfigurationHelper.CreateOpenApiMetadataDefaults(),
                constraints: RouteConfigurationHelper.CreateSchoolYearConstraint(useSchoolYear)
                )
            .SetDataTokenRouteName(MetadataRouteConstants.Identity);
        }
コード例 #2
0
        private void ConfigureSchemaSpecificMetadataRoute(
            HttpConfiguration config,
            object schoolYearConstraint,
            string schoolYearRoute)
        {
            string schoolYearSegment = schoolYearRoute;
            var    constraints       = schoolYearConstraint;

            config.Routes.MapHttpRoute(
                name: "OpenApiMetadataSchema",
                routeTemplate: "metadata/data/v{apiVersion}/" + schoolYearSegment + "{schemaName}/swagger.json",
                defaults: RouteConfigurationHelper.CreateOpenApiMetadataDefaults(),
                constraints: constraints
                )
            .SetDataTokenRouteName(MetadataRouteConstants.Schema);
        }
コード例 #3
0
        public void ConfigureOpenApiMetadataRoutes(HttpConfiguration config, bool useSchoolYear)
        {
            Preconditions.ThrowIfNull(config, nameof(config));

            var    schoolYearConstraint = RouteConfigurationHelper.CreateSchoolYearConstraint(useSchoolYear);
            var    apiDefaults          = RouteConfigurationHelper.CreateOpenApiMetadataDefaults();
            string schoolYearSegment    = RouteConfigurationHelper.CreateSchoolYearSegment(useSchoolYear);

            config.Routes.MapHttpRoute(
                name: MetadataRouteConstants.Profiles,
                routeTemplate: "metadata/data/v{apiVersion}/" + schoolYearSegment + "profiles/{profileName}/swagger.json",
                defaults: RouteConfigurationHelper.CreateOpenApiMetadataDefaults(),
                constraints: schoolYearConstraint
                )
            .SetDataTokenRouteName(MetadataRouteConstants.Profiles);
        }
コード例 #4
0
        public void ConfigureOpenApiMetadataRoutes(HttpConfiguration config, bool useSchoolYear)
        {
            Preconditions.ThrowIfNull(config, nameof(config));

            var schemas = _schemaNameMapProvider.GetSchemaNameMaps()
                          .Select(x => x.UriSegment.ToLowerInvariant())
                          .ToList();

            string schemaNameConstraints = string.Join("|", schemas);

            var    schoolYearConstraint    = RouteConfigurationHelper.CreateSchoolYearConstraint(useSchoolYear);
            var    resourceTypesConstraint = RouteConfigurationHelper.CreateResourceTypesConstraints(useSchoolYear);
            var    apiDefaults             = RouteConfigurationHelper.CreateOpenApiMetadataDefaults();
            string schoolYearRoute         = RouteConfigurationHelper.CreateSchoolYearSegment(useSchoolYear);

            ConfigureResourceTypeMetadataRoutes(config, apiDefaults, resourceTypesConstraint, schoolYearRoute);
            ConfigureComprehensiveMetadataRoute(config, apiDefaults, schoolYearConstraint, schoolYearRoute);
            ConfigureDependencyMetadataRoute(config, schoolYearConstraint, schoolYearRoute);

            ConfigureSchemaSpecificMetadataRoute(
                config,
                RouteConfigurationHelper.CreateSchemaNameConstraint(useSchoolYear, schemaNameConstraints),
                schoolYearRoute);
        }