Protocols
The following protocols are available globally.
-
Defines the protocol which all Kitura compliant middleware must implement.
Middleware are class or struct based request handlers. They are often generic in nature and not tied to a specific request.
See moreDeclaration
Swift
public protocol RouterMiddleware
-
The protocol that type-safe middleware must implement to be used in Kitura Codable routes.
Classes or structs conforming to TypeSafeMiddleware must contain a static handle function that processes an incoming request. On success, the handle function creates an instance of Self and passes this instance to the users route handler.
Usage Example:
In this example, a UserMiddleware struct is defined that checks the request for the header
TestHeader
. If the header is found UserMiddleware initialises itself with the header and passes itself to the route. If the header is not found it returns a RequestError.
See morestruct UserMiddleware: TypeSafeMiddleware { let header: String static func handle( request: RouterRequest, response: RouterResponse, completion: @escaping (UserMiddleware?, RequestError?) -> Void ) { guard let expectedHeader = request.headers["TestHeader"] else { return completion(nil, .badRequest) } let selfInstance: UserMiddleware = UserMiddleware(header: expectedHeader) completion(selfInstance, nil) } }
Declaration
Swift
public protocol TypeSafeMiddleware
-
A protocol for providing a custom method for setting the headers of the response of static file serving middleware.
See moreDeclaration
Swift
public protocol ResponseHeadersSetter