Procs
proc registerErrorHandler(app: Prologue; code: HttpCode; handler: ErrorHandler) {...}{. inline, raises: [Exception], tags: [RootEffect].}
- Registers a user-defined error handler. You can specify HttpCode and its corresponding handler. For example, if response's HttpCode is euqal to this, Framework will execute corresponding function. Source Edit
proc registerErrorHandler(app: Prologue; code: set[HttpCode]; handler: ErrorHandler) {...}{. inline, raises: [Exception], tags: [RootEffect].}
- Register the same handler for a set of HttpCode. Source Edit
proc registerErrorHandler(app: Prologue; code: openArray[HttpCode]; handler: ErrorHandler) {...}{.inline, raises: [Exception], tags: [RootEffect].}
-
Register the same handler for a sequence of HttpCode. This is a helper function.
Example:
## Examples for all registerErrorHandler proc go404*(ctx: Context) {.async.} = resp "Something wrong!" proc go20x*(ctx: Context) {.async.} = resp "Ok!" proc go30x*(ctx: Context) {.async.} = resp "EveryThing else?" let settings = newSettings() var app = newApp(settings) app.registerErrorHandler(Http404, go404) app.registerErrorHandler({Http200 .. Http204}, go20x) app.registerErrorHandler(@[Http301, Http304, Http307], go30x) doAssert app.errorHandlerTable[Http404] == go404 doAssert app.errorHandlerTable[Http202] == go20x doAssert app.errorHandlerTable[Http304] == go30x
Source Edit proc newSettings(settings: Settings; localSettings: LocalSettings): Settings {...}{.inline, raises: [], tags: [].}
-
Creates a new settings.
- Params:
- settings is a global immutable setting for all handlers.
- localSettings is a local immutable setting for corresponding handler or handler group.
proc addRoute(app: Prologue; route: Regex; handler: HandlerAsync; httpMethod = HttpGet; middlewares: seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{. inline, raises: [], tags: [].}
-
Adds a single regex route with handler and don't check whether route is duplicated.
Notes: The framework will automatically register HttpHead method, if HttpMethod is HttpGet.
Source Edit proc addRoute(app: Prologue; route: Regex; handler: HandlerAsync; httpMethod: seq[HttpMethod]; middlewares: seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{.inline, raises: [], tags: [].}
- Adds a single regex route and handler, but supports a set of HttpMethod. Source Edit
proc addRoute(app: Prologue; route: string; handler: HandlerAsync; httpMethod = HttpGet; name = ""; middlewares: seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{.inline, raises: [DuplicatedRouteError, ValueError, DuplicatedReversedRouteError], tags: [].}
-
Adds a single route and handler. It checks whether route is duplicated.
Notes: The framework will automatically register HttpHead method, if HttpMethod is HttpGet.
Source Edit proc addRoute(app: Prologue; route: string; handler: HandlerAsync; httpMethod: seq[HttpMethod]; name = ""; middlewares: seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{. inline, raises: [DuplicatedReversedRouteError, ValueError, DuplicatedRouteError], tags: [].}
- Adds a single regex route and handler, but supports a set of HttpMethod. It also checks whether route is duplicated Source Edit
proc addRoute(app: Prologue; patterns: seq[UrlPattern]; baseRoute = ""; settings: LocalSettings = nil) {...}{.inline, raises: [ DuplicatedReversedRouteError, ValueError, DuplicatedRouteError, Exception], tags: [RootEffect].}
- Adds multiple routes with handlers. Source Edit
proc head(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{. inline, raises: [DuplicatedRouteError, ValueError, DuplicatedReversedRouteError], tags: [].}
- Adds route and handler with HttpHead. Source Edit
proc get(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{. inline, raises: [DuplicatedRouteError, ValueError, DuplicatedReversedRouteError], tags: [].}
- Adds route and handler with HttpGet and HttpHead. Source Edit
proc post(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{. inline, raises: [DuplicatedRouteError, ValueError, DuplicatedReversedRouteError], tags: [].}
- Adds route and handler with HttpPost. Source Edit
proc put(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{. inline, raises: [DuplicatedRouteError, ValueError, DuplicatedReversedRouteError], tags: [].}
- Adds route and handler with HttpPut. Source Edit
proc delete(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{. inline, raises: [DuplicatedRouteError, ValueError, DuplicatedReversedRouteError], tags: [].}
- Adds route and handler with HttpDelete. Source Edit
proc trace(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{. inline, raises: [DuplicatedRouteError, ValueError, DuplicatedReversedRouteError], tags: [].}
- Adds route and handler with HttpTrace. Source Edit
proc options(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{. inline, raises: [DuplicatedRouteError, ValueError, DuplicatedReversedRouteError], tags: [].}
- Adds route and handler with HttpOptions. Source Edit
proc connect(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{. inline, raises: [DuplicatedRouteError, ValueError, DuplicatedReversedRouteError], tags: [].}
- Adds route and handler with HttpConnect. Source Edit
proc patch(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{. inline, raises: [DuplicatedRouteError, ValueError, DuplicatedReversedRouteError], tags: [].}
- Adds route and handler with HttpPatch. Source Edit
proc all(app: Prologue; route: string; handler: HandlerAsync; name = ""; middlewares: sink seq[HandlerAsync] = @[]; settings: LocalSettings = nil) {...}{. inline, raises: [DuplicatedReversedRouteError, ValueError, DuplicatedRouteError], tags: [].}
- Adds route and handler with all HttppMethod. Source Edit
proc printRoute(app: Prologue) {...}{.inline, raises: [], tags: [].}
- A helper function for printing all route names. Source Edit
proc appAddress(app: Prologue): string {...}{.inline, raises: [], tags: [].}
- Gets the address from the settings. Source Edit
proc appDebug(app: Prologue): bool {...}{.inline, raises: [], tags: [].}
- Gets the debug attributes from the settings. Source Edit
proc appName(app: Prologue): string {...}{.inline, raises: [], tags: [].}
- Gets the appName attributes from the settings. Source Edit
proc appPort(app: Prologue): Port {...}{.inline, raises: [], tags: [].}
- Gets the port from the settings. Source Edit
proc newApp(settings: Settings; middlewares: sink seq[HandlerAsync] = @[]; startup: sink seq[Event] = @[]; shutdown: sink seq[Event] = @[]; errorHandlerTable = DefaultErrorHandler; appData = newStringTable(mode = modeCaseSensitive)): Prologue {...}{.inline, raises: [ValueError], tags: [].}
-
Creates a new App instance.
- Params:
- settings is a global immutable setting which is visible all handlers.
- middlewares is a global middlewares collections.
- startup is used to execute tasks before the application starts.
- shutdown is used to execute tasks after the application stops.
- errorHandlerTable stores Httpcodes and corresponding handlers.
- appData is a global user-defined data.
proc run(app: Prologue) {...}{.raises: [Exception, ValueError, OSError, IOSelectorsException, KeyError], tags: [RootEffect, TimeEffect, WriteIOEffect, ReadIOEffect, ReadDirEffect].}
- Starts an Application. Source Edit
Exports
-
Request, charset, initRequest, url, setScheme, contentType, query, port, beast/request, request, getCookie, send, scheme, stripPath, body, close, respond, respond, headers, secure, path, reqMethod, NativeRequest, hostName, serve, Prologue, server, newPrologue, beast/server, basicregex, parseStringTable, types, FormPart, getPrologueEnv, parseStringTable, existsPrologueEnv, contains, $, $, BaseType, $, initEnv, dumps, values, hasKey, Session, del, Env, initSession, pairs, SecretUrl, getOrDefault, delPrologueEnv, EmptySecretKeyError, parseValue, clear, setPrologueEnv, loads, []=, putPrologueEnv, writePrologueEnv, update, getOrDefault, []=, len, len, initFormPart, getAllPrologueEnv, keys, get, [], configure, EnvWrongFormatError, loadPrologueEnv, BadSecretKeyError, SecretKey, EnvError, [], [], PrologueVersion, ProloguePrefix, constants, SyncEvent, attachment, newErrorHandlerTable, staticFileResponse, multiMatch, save, PathHandler, AsyncEvent, ReRouter, context, gScope, getPostParams, addHeader, RePath, hasHeader, getSettings, Router, multiMatch, UploadFile, handle, ErrorHandlerTable, initEvent, urlFor, ErrorHandler, defaultHandler, HandlerAsync, Path, default500Handler, getQueryParams, setHeader, getPathParams, setResponse, ReversedRouter, setCookie, Event, deleteCookie, initEvent, getPathParams, initUploadFile, abortExit, send, setResponse, Context, getUploadFile, newErrorHandlerTable, GlobalScope, getCookie, setHeader, respond, default404Handler, newReversedRouter, newContext, setCookie, urlsafeBase64Encode, base64Encode, urlsafeBase64Decode, encode, base64Encode, base64Decode, urlsafeBase64Encode, switch, middlewaresbase, doNothingClosureMiddleware, newLocalSettings, newSettings, newSettings, newLocalSettings, CtxSettings, nativesettings, newCtxSettings, hasKey, LocalSettings, getOrDefault, Settings, newSettings, [], errorPage, multiPartPage, internalServerErrorPage, loginPage, pages, $, initResponse, plainTextResponse, redirect, resp, setHeader, htmlResponse, response, setCookie, setHeader, setCookie, abort, resp, jsonResponse, Response, error404, addHeader, deleteCookie, hasHeader, route, initPath, newReRouter, stripRoute, pattern, PrologueError, items, RouteResetError, UrlPattern, initRePath, hasKey, hash, []=, add, newPathHandler, DuplicatedRouteError, DuplicatedReversedRouteError, RouteError, findHandler, newRouter, pattern, pairs, [], EmptySecretKeyError, parseValue, clear, []=, types, BadSecretKeyError, FormPart, parseStringTable, update, getOrDefault, []=, $, len, BaseType, initFormPart, len, parseStringTable, dumps, $, Session, del, initSession, SecretKey, [], loads, SecretUrl, [], randomBytesSeq, randomSecretKey, DefaultEntropy, urandom, randomString, sinceApi, since, utils, beforeApi, isStaticFile