presto/route

Search:
Group by:
Source   Edit  

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  

Iterators

iterator pairs(route: RestRoute): tuple[key: string, value: string] {.
    ...raises: [], raises: [], tags: [], forbids: [].}
Source   Edit  
iterator params(route: RestRoute): string {....raises: [], tags: [], forbids: [].}
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