Added (first version of) sample Hummingbird app. #3

Closed
javier wants to merge 24 commits from middleware/sample into main
Showing only changes of commit ed9e24ec5c - Show all commits
@@ -15,7 +15,11 @@ import class Hummingbird.Router
import protocol Hummingbird.ApplicationProtocol import protocol Hummingbird.ApplicationProtocol
import struct Hummingbird.Application import struct Hummingbird.Application
import struct Hummingbird.BasicRequestContext
import struct Hummingbird.BindAddress import struct Hummingbird.BindAddress
import struct Hummingbird.LogRequestsMiddleware
import struct HummingbirdDocC.DocCConfiguration
import struct HummingbirdDocC.DocCMiddleware
import struct Logging.Logger import struct Logging.Logger
struct AppBuilder { struct AppBuilder {
@@ -38,14 +42,45 @@ struct AppBuilder {
func callAsFunction( func callAsFunction(
_ arguments: AppArguments _ arguments: AppArguments
) -> some ApplicationProtocol { ) -> some ApplicationProtocol {
let router = Router()
return Application( return Application(
router: router, router: router(),
configuration: .init( configuration: .init(
address: .hostname(arguments.hostname, port: arguments.port) address: .hostname(
arguments.hostname,
port: arguments.port
)
), ),
logger: logger logger: logger
) )
} }
}
// MARK: - Helpers
private extension AppBuilder {
// MARK: Type aliases
typealias AppRequestContext = BasicRequestContext
// MARK: Functions
func router() -> Router<AppRequestContext> {
let router = Router()
router.addMiddleware {
LogRequestsMiddleware(logger.logLevel)
DocCMiddleware (
configuration: DocCConfiguration(
uriRoot: "/archives",
folderRoot: "Samples/HummingbirdDocC/Archives"
),
logger: logger
)
}
return router
}
} }