Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Web.Http Imports System.Web.Http.Dispatcher Imports System.Web.Http.Routing Imports Microsoft.Extensions.DependencyInjection Imports Microsoft.Web.Http Imports Microsoft.Web.Http.Routing Public Module WebApiConfig 'Public Sub Register(ByVal config As HttpConfiguration) ' ' Web-API-Konfiguration und -Dienste ' ' Web-API-Routen ' config.MapHttpAttributeRoutes() ' ' Dim constraintResolver = New DefaultInlineConstraintResolver() ' With {.ConstraintMap = {{"apiVersion", GetType(ApiVersionRouteConstraint)}} ' 'config.Routes.MapHttpRoute( ' ' name:="DefaultApi", ' ' routeTemplate:="api/{controller}/{id}", ' ' defaults:=New With {.id = RouteParameter.Optional} ' ') ' config.Routes.MapHttpRoute( ' name:="DefaultApi1", ' routeTemplate:="api/V1/{controller}/{id}", ' defaults:=New With {.id = RouteParameter.Optional} ' ) ' config.Routes.MapHttpRoute( ' name:="DefaultApi2", ' routeTemplate:="api/V2/{controller}/{id}", ' defaults:=New With {.id = RouteParameter.Optional} ' ) ' ' config.MapHttpAttributeRoutes(constraintResolver) 'End Sub Public Sub Register(ByVal config As HttpConfiguration) Dim constraintsResolver = New DefaultInlineConstraintResolver() constraintsResolver.ConstraintMap.Add("apiVersion", GetType(ApiVersionRouteConstraint)) ' config.MapHttpAttributeRoutes(constraintsResolver) ' config.Services.Replace(GetType(IHttpControllerSelector), New HttpControllerSelector(config)) config.MapHttpAttributeRoutes(constraintsResolver) 'Dim constraintResolver = New DefaultInlineConstraintResolver() With {.ConstraintMap = {{"apiVersion", GetType(ApiVersionRouteConstraint)}}} 'config.MapHttpAttributeRoutes(constraintResolver) config.AddApiVersioning(Function(options) options.ReportApiVersions = True options.AssumeDefaultVersionWhenUnspecified = True ' options.DefaultApiVersion = New ApiVersion("1") End Function) 'config.AddApiVersioning(Function(o) ' o.DefaultApiVersion = New ApiVersion(1, 0) ' End Function) ' config.Routes.MapHttpRoute(name:="DefaultApi-Versioned", routeTemplate:="v{apiversion}", defaults:=New With {Key 'config.Routes.MapHttpRoute( ' name:="AVISORoute0", ' routeTemplate:="api/V{apiversion}/AVISO", ' defaults:=New With {.id = RouteParameter.Optional} ') 'config.Routes.MapHttpRoute( ' name:="AVISORoute", ' routeTemplate:="api/V{apiVersion}/{controller}/{id}", ' defaults:=New With {.id = RouteParameter.Optional, .Constraints = New Microsoft.Web.Http.Routing.ApiVersionRouteConstraint()} ') config.Routes.MapHttpRoute( name:="AVISORoute2", routeTemplate:="api/{controller}/{id}", defaults:=New With {.id = RouteParameter.Optional} ) 'TEST/ config.Routes.MapHttpRoute( name:="AVISORoute0TEST", routeTemplate:="api/V{apiversion}/{controller}/AVISO", defaults:=New With {.id = RouteParameter.Optional} ) 'config.Routes.MapHttpRoute( ' name:="AVISORouteTEST", ' routeTemplate:="api/V{apiversion}/{controller}/{controller}/{id}", ' defaults:=New With {.id = RouteParameter.Optional} ') ' config.Routes.MapHttpRoute( ' name:="AVISORoute2TEST", ' routeTemplate:="api/{controller}/{controller}/{id}", ' defaults:=New With {.id = RouteParameter.Optional} ') config.Routes.MapHttpRoute( name:="AVISO", routeTemplate:="api/V{apiversion}/{controller}/{id}", defaults:=New With {.id = RouteParameter.Optional, .Constraints = New Microsoft.Web.Http.Routing.ApiVersionRouteConstraint()} ) End Sub 'Public Sub Register(ByVal config As HttpConfiguration) ' 'Dim constraintsResolver = New DefaultInlineConstraintResolver() ' 'constraintsResolver.ConstraintMap.Add("apiVersionConstraint", GetType(ApiVersionConstraint)) ' 'config.MapHttpAttributeRoutes(constraintsResolver) ' 'config.Services.Replace(GetType(IHttpControllerSelector), New NamespaceHttpControllerSelector(config)) ' ' Web API routes ' config.MapHttpAttributeRoutes() ' 'config.Routes.MapHttpRoute( ' ' name:="DefaultApi", ' ' routeTemplate:="api/{controller}/{action}/{id}", ' ' defaults:=New With {.id = RouteParameter.Optional} ' ' ) ' 'config.MapHttpAttributeRoutes() ' config.AddApiVersioning(Function(options) ' options.ReportApiVersions = True ' options.AssumeDefaultVersionWhenUnspecified = True ' ' options.DefaultApiVersion = New ApiVersion(1, 0) ' End Function) ' 'config.AddApiVersioning(Function(options) ' ' options.ReportApiVersions = False ' ' options.AssumeDefaultVersionWhenUnspecified = False ' ' options.DefaultApiVersion = New ApiVersion(1, 0) ' ' End Function) ' 'config.AddApiVersioning(Function(o) ' ' o.DefaultApiVersion = New ApiVersion(2, 0) ' ' End Function) ' ' config.Routes.MapHttpRoute(name:="DefaultApi-Versioned", routeTemplate:="v{apiversion}", defaults:=New With {Key ' 'config.Routes.MapHttpRoute( ' ' name:="AVISORoute0", ' ' routeTemplate:="api/v{apiversion}/AVISO", ' ' defaults:=New With {.id = RouteParameter.Optional} ' ') ' 'config.Routes.MapHttpRoute(name:="DefaultApi", routeTemplate:="api/{version}/{controller}", defaults:=New With {Key .version = "v2"}) ' 'config.Routes.MapHttpRoute(name:="DefaultApiWithId", routeTemplate:="api/{version}/{controller}/{id}", defaults:=New With {Key .id = RouteParameter.[Optional]}) ' 'config.MapHttpAttributeRoutes(contraintResolver) ' config.Routes.MapHttpRoute( ' name:="AVISORoute", ' routeTemplate:="api/v{version:apiVersion}/{controller}/{id}", ' defaults:=New With {.id = RouteParameter.Optional, .Constraints = New Microsoft.Web.Http.Routing.ApiVersionRouteConstraint()} ' ) ' config.Routes.MapHttpRoute( ' name:="AVISORoute2", ' routeTemplate:="api/{controller}/{id}", ' defaults:=New With {.id = RouteParameter.Optional} ' ) ' 'TEST/ ' config.Routes.MapHttpRoute( ' name:="AVISORoute0TEST", ' routeTemplate:="api/V{version:apiVersion}/TEST/AVISO", ' defaults:=New With {.id = RouteParameter.Optional} ' ) ' config.Routes.MapHttpRoute( ' name:="AVISORouteTEST", ' routeTemplate:="api/V{version:apiVersion}/TEST/{controller}/{id}", ' defaults:=New With {.id = RouteParameter.Optional} ' ) ' config.Routes.MapHttpRoute( ' name:="AVISORoute2TEST", ' routeTemplate:="api/{controller}/TEST/{id}", ' defaults:=New With {.id = RouteParameter.Optional} ' ) 'End Sub End Module