Types
RestApiCallback = proc (request: HttpRequestRef; pathParams: HttpTable; queryParams: HttpTable; body: Option[ContentBody]): Future[ RestApiResponse] {....raises: [], gcsafe.}
- Source Edit
RestApiCallback2 = proc (request: HttpRequestRef; pathParams: HttpTable; queryParams: HttpTable; body: Option[ContentBody]): Future[ RestApiResponse] {.async: (...raises: [CancelledError]).}
- Source Edit
RestRoute = object requestPath*: SegmentedPath routePath*: SegmentedPath callback*: RestApiCallback2 flags*: set[RestRouterFlag] metrics*: set[RestServerMetricsType]
- Source Edit
RestRouteItem = object case kind*: RestRouteKind of RestRouteKind.None: nil of RestRouteKind.Handler: of RestRouteKind.Redirect: redirectPath*: SegmentedPath flags*: set[RestRouterFlag] metrics*: set[RestServerMetricsType]
- Source Edit
RestRouteKind {.pure.} = enum None, Handler, Redirect
- Source Edit
RestRouter = object patternCallback*: PatternCallback routes*: BTree[SegmentedPath, RestRouteItem] allowedOrigin*: Option[string]
- Source Edit
RestRouterFlag {.pure.} = enum Raw
- Source Edit
Procs
proc addRedirect(rr: var RestRouter; request: HttpMethod; srcPath: string; dstPath: string) {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc addRoute(rr: var RestRouter; meth: HttpMethod; path: string; flags: set[RestRouterFlag]; metrics: set[RestServerMetricsType]; handler: RestApiCallback) {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc addRoute(rr: var RestRouter; meth: HttpMethod; path: string; flags: set[RestRouterFlag]; metrics: set[RestServerMetricsType]; handler: RestApiCallback2) {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc addRoute(rr: var RestRouter; request: HttpMethod; path: string; flags: set[RestRouterFlag]; handler: RestApiCallback) {. ...raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc addRoute(rr: var RestRouter; request: HttpMethod; path: string; flags: set[RestRouterFlag]; handler: RestApiCallback2) {. ...raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc addRoute(rr: var RestRouter; request: HttpMethod; path: string; handler: RestApiCallback) {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc addRoute(rr: var RestRouter; request: HttpMethod; path: string; handler: RestApiCallback2) {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc getParamsList(route: RestRoute): seq[string] {....raises: [], tags: [], forbids: [].}
- Source Edit
proc getParamsTable(route: RestRoute): HttpTable {....raises: [], tags: [], forbids: [].}
- Source Edit
proc getRoute(rr: RestRouter; spath: SegmentedPath): Option[RestRoute] {. ...raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc init(t: typedesc[RestRouteItem]; spath: SegmentedPath; flags: set[RestRouterFlag]; metrics: set[RestServerMetricsType]; handler: RestApiCallback): RestRouteItem {....raises: [].}
- Source Edit
proc init(t: typedesc[RestRouteItem]; spath: SegmentedPath; flags: set[RestRouterFlag]; metrics: set[RestServerMetricsType]; handler: RestApiCallback2): RestRouteItem {....raises: [].}
- Source Edit
proc init(t: typedesc[RestRouter]; patternCallback: PatternCallback; allowedOrigin = none(string)): RestRouter {....raises: [].}
- Source Edit
Macros
macro api(router: RestRouter; meth: static[HttpMethod]; path: static[string]; body: untyped): untyped {..}
- Source Edit
macro api2(router: RestRouter; meth: static[HttpMethod]; path: static[string]; body: untyped): untyped {..}
- Source Edit
macro metricsApi(router: RestRouter; meth: static[HttpMethod]; path: static[string]; metrics: static[set[RestServerMetricsType]]; body: untyped): untyped {..}
- Source Edit
macro metricsApi2(router: RestRouter; meth: static[HttpMethod]; path: static[string]; metrics: static[set[RestServerMetricsType]]; body: untyped): untyped {..}
- Source Edit
macro rawApi(router: RestRouter; meth: static[HttpMethod]; path: static[string]; body: untyped): untyped {..}
- Source Edit
macro rawApi2(router: RestRouter; meth: static[HttpMethod]; path: static[string]; body: untyped): untyped {..}
- Source Edit
macro rawMetricsApi(router: RestRouter; meth: static[HttpMethod]; path: static[string]; metrics: static[set[RestServerMetricsType]]; body: untyped): untyped {..}
- Source Edit
macro rawMetricsApi2(router: RestRouter; meth: static[HttpMethod]; path: static[string]; metrics: static[set[RestServerMetricsType]]; body: untyped): untyped {..}
- Source Edit
macro redirect(router: RestRouter; meth: static[HttpMethod]; fromPath: static[string]; toPath: static[string]): untyped {..}
- Define REST API endpoint which redirects request to different compatible endpoint ("/somecall" will be redirected to "/api/somecall"). Source Edit
Exports
-
RestBadRequestError, RestServerMetricsTypes, RestCommunicationError, ResponseContentBody, RestServerMetrics, ByteChar, RestDefect, response, RestKeyValueTuple, redirect, RestApiResponseKind, response, error, response, RestApiResponse, RestResult, redirect, redirect, RestEncodingError, response, RestRedirectionError, error, response, error, RestApiError, RestResponseError, ContentBody, raiseRestDnsResolveError, RestServerMetricsType, init, RestDecodingError, RestDnsResolveError, RestError, response