150 lines
5.7 KiB
VB.net
150 lines
5.7 KiB
VB.net
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
|