2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
42#ifndef EXPRESS_ROUTER_H
43#define EXPRESS_ROUTER_H
45#include "express/Next.h"
46#include "express/Request.h"
47#include "express/Response.h"
48#include "express/RootRoute.h"
54#ifndef DOXYGEN_SHOULD_SKIP_THIS
63#define MIDDLEWARE(req, res, next)
64 ([[maybe_unused]] const std::shared_ptr<express::Request>& req,
65 [[maybe_unused]] const std::shared_ptr<express::Response>& res,
66 [[maybe_unused]] express::Next&(next))
68#define APPLICATION(req, res)
69 ([[maybe_unused]] const std::shared_ptr<express::Request>& req, [[maybe_unused]] const std::shared_ptr<express::Response>& res)
71#define DECLARE_ROUTER_REQUESTMETHOD(METHOD)
72 Route& METHOD(const Router& router) const;
73 Route& METHOD(const std::string& relativeMountPath, const Router& router) const;
74 Route& METHOD(const std::function<void(const std::shared_ptr<Request>&, const std::shared_ptr<Response>&)>& lambda) const;
75 Route& METHOD(const std::string& relativeMountPath,
76 const std::function<void(const std::shared_ptr<Request>&, const std::shared_ptr<Response>&)>& lambda) const;
77 Route& METHOD(const std::function<void(const std::shared_ptr<Request>&, const std::shared_ptr<Response>&, Next&)>& lambda) const;
78 Route& METHOD(const std::string& relativeMountPath,
79 const std::function<void(const std::shared_ptr<Request>&, const std::shared_ptr<Response>&, Next&)>& lambda) const;
81 template <typename... Lambdas>
82 Route& METHOD(const std::function<void(const std::shared_ptr<Request>&, const std::shared_ptr<Response>&)>& lambda,
83 Lambdas... lambdas) const;
84 template <typename... Lambdas>
85 Route& METHOD(const std::string& relativeMountPath,
86 const std::function<void(const std::shared_ptr<Request>&, const std::shared_ptr<Response>&)>& lambda,
87 Lambdas... lambdas) const;
88 template <typename... Lambdas>
89 Route& METHOD(const std::function<void(const std::shared_ptr<Request>&, const std::shared_ptr<Response>&, Next&)>& lambda,
90 Lambdas... lambdas) const;
91 template <typename... Lambdas>
92 Route& METHOD(const std::string& relativeMountPath,
93 const std::function<void(const std::shared_ptr<Request>&, const std::shared_ptr<Response>&, Next&)>& lambda,
94 Lambdas... lambdas) const;
101 Router(
const Router&) =
default;
103 const Router& setStrictRouting(
bool strictRouting =
true)
const;
105 std::list<std::string> getRoutes()
const;
120 std::shared_ptr<RootRoute> rootRoute =
nullptr;
123 friend class RootRoute;
128#include "express/Router.hpp"
#define DECLARE_ROUTER_REQUESTMETHOD(METHOD)
static express::Router getRouter()
static WebApp getWebApp(const std::string &name)
static WebApp getWebApp(const std::string &name)
int main(int argc, char *argv[])