Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Web.Http Imports System.Web.Http.Dispatcher Imports System.Web.Http.Routing Imports System.Web.Routing Imports Microsoft.Extensions.DependencyInjection Imports Microsoft.Web.Http Imports Microsoft.Web.Http.Routing Imports Microsoft.Web.Http.Versioning Imports Swashbuckle.Application Imports Swashbuckle.Swagger Imports NSwag Imports NSwag.AspNet.Owin Public Module WebApiConfig Public Sub Register2(ByVal config As HttpConfiguration) ' Dim constraintsResolver = New DefaultInlineConstraintResolver() ' constraintsResolver.ConstraintMap.Add("apiVersion", GetType(ApiVersionRouteConstraint)) ' config.MapHttpAttributeRoutes(constraintsResolver) ' config.AddApiVersioning(Function(options) ' options.ReportApiVersions = True ' options.AssumeDefaultVersionWhenUnspecified = True ' options.DefaultApiVersion = New ApiVersion("1") ' End Function) ' config.Routes.MapHttpRoute( ' name:="AVISORoute2", ' routeTemplate:="api/v{version:apiVersion}/{controller}/{id}", ' defaults:=New With {.id = RouteParameter.Optional} ') ' TEST/ ' config.Routes.MapHttpRoute( ' name:="AVISORoute0TEST", ' routeTemplate:="api/v{version:apiVersion}/{controller}/AVISO", ' defaults:=New With {.id = RouteParameter.Optional} ' ) ' config.Routes.MapHttpRoute( ' name:="AVISO", ' routeTemplate:="api/v{version:apiVersion}/{controller}/{id}", ' defaults:=New With {.id = RouteParameter.Optional, .Constraints = New Microsoft.Web.Http.Routing.ApiVersionRouteConstraint()} ' ) End Sub Public Sub Register3(ByVal config As HttpConfiguration) Dim constraintsResolver = New DefaultInlineConstraintResolver() constraintsResolver.ConstraintMap.Add("apiVersion", GetType(ApiVersionRouteConstraint)) config.MapHttpAttributeRoutes(constraintsResolver) 'config.Filters.Add(New AuthorizeAttribute) 'wenn alle API Aufrufe autorisiert werden müssen/ansonsten können einzelene Controlleraufrufe auth. werden! config.Filters.Add(New BasicAuthenticationAttribute()) 'config.AddApiVersioning(Function(options) ' options.ReportApiVersions = True ' options.AssumeDefaultVersionWhenUnspecified = True ' options.ApiVersionReader = ApiVersionReader.Combine(New UrlSegmentApiVersionReader(), ' New HeaderApiVersionReader("x-api-version"), ' New MediaTypeApiVersionReader("x-api-version")) ' 'options.DefaultApiVersion = New ApiVersion("1") ' End Function) config.AddVersionedApiExplorer(Function(c) c.GroupNameFormat = "'v'VVV" c.SubstituteApiVersionInUrl = True End Function) End Sub Public Sub Register(ByVal config As HttpConfiguration) Dim constraintsResolver = New DefaultInlineConstraintResolver() constraintsResolver.ConstraintMap.Add("apiVersion", GetType(ApiVersionRouteConstraint)) config.MapHttpAttributeRoutes(constraintsResolver) 'config.AddApiVersioning(Sub(options As Action(Of ApiVersioningOptions) ' '// reporting api versions will return the headers "api-supported-versions" and "api-deprecated-versions" ' options.ReportApiVersions = True ' options.AssumeDefaultVersionWhenUnspecified = True ' options.ApiVersionReader = ApiVersionReader.Combine(New UrlSegmentApiVersionReader(), ' New HeaderApiVersionReader("x-api-version"), ' New MediaTypeApiVersionReader("x-api-version")) ' End Sub) config.AddApiVersioning(Sub(options As Microsoft.Web.Http.Versioning.ApiVersioningOptions) options.AssumeDefaultVersionWhenUnspecified = True options.ReportApiVersions = True options.DefaultApiVersion = New Microsoft.Web.Http.ApiVersion(1, 0) options.DefaultApiVersion = New Microsoft.Web.Http.ApiVersion(2, 0) options.ApiVersionSelector = New Microsoft.Web.Http.Versioning.LowestImplementedApiVersionSelector(options) End Sub) config.AddVersionedApiExplorer(Function(c) c.GroupNameFormat = "'v'VVV" c.SubstituteApiVersionInUrl = True End Function) If False Then 'wenn alle API Aufrufe autorisiert werden müssen/ansonsten können einzelene Controlleraufrufe auth. werden! config.Filters.Add(New AuthorizeAttribute) Else config.Filters.Add(New BasicAuthenticationAttribute()) End If SwaggerConfig.Register(config) End Sub End Module