138 csilk_app_t* app,
const char* method,
const char* path,
csilk_handler_t* handlers,
size_t n);
153 const char* input_type,
154 const char* output_type,
156 const char* description);
169 const char* perm_required,
170 const char* perm_resource);
187 const char* input_type,
188 const char* output_type,
190 const char* description,
191 const char* perm_required,
192 const char* perm_resource);
198#define csilk_app_get(app, path, handler) csilk_app_add_route(app, "GET", path, handler)
200#define csilk_app_get_ext(app, path, handler, in, out, summary, desc) \
201 csilk_app_add_route_extended(app, "GET", path, handler, in, out, summary, desc)
203#define csilk_app_get_perm(app, path, handler, perm, res) \
204 csilk_app_add_route_perm(app, "GET", path, handler, perm, res)
209#define csilk_app_post(app, path, handler) csilk_app_add_route(app, "POST", path, handler)
211#define csilk_app_post_ext(app, path, handler, in, out, summary, desc) \
212 csilk_app_add_route_extended(app, "POST", path, handler, in, out, summary, desc)
214#define csilk_app_post_perm(app, path, handler, perm, res) \
215 csilk_app_add_route_perm(app, "POST", path, handler, perm, res)
220#define csilk_app_put(app, path, handler) csilk_app_add_route(app, "PUT", path, handler)
222#define csilk_app_put_ext(app, path, handler, in, out, summary, desc) \
223 csilk_app_add_route_extended(app, "PUT", path, handler, in, out, summary, desc)
225#define csilk_app_put_perm(app, path, handler, perm, res) \
226 csilk_app_add_route_perm(app, "PUT", path, handler, perm, res)
231#define csilk_app_delete(app, path, handler) csilk_app_add_route(app, "DELETE", path, handler)
234#define csilk_app_delete_ext(app, path, handler, in, out, summary, desc) \
235 csilk_app_add_route_extended(app, "DELETE", path, handler, in, out, summary, desc)
237#define csilk_app_delete_perm(app, path, handler, perm, res) \
238 csilk_app_add_route_perm(app, "DELETE", path, handler, perm, res)
243#define csilk_app_patch(app, path, handler) csilk_app_add_route(app, "PATCH", path, handler)
245#define csilk_app_patch_ext(app, path, handler, in, out, summary, desc) \
246 csilk_app_add_route_extended(app, "PATCH", path, handler, in, out, summary, desc)
248#define csilk_app_patch_perm(app, path, handler, perm, res) \
249 csilk_app_add_route_perm(app, "PATCH", path, handler, perm, res)
254#define csilk_app_options(app, path, handler) csilk_app_add_route(app, "OPTIONS", path, handler)
257#define csilk_app_options_ext(app, path, handler, in, out, summary, desc) \
258 csilk_app_add_route_extended(app, "OPTIONS", path, handler, in, out, summary, desc)
260#define csilk_app_options_perm(app, path, handler, perm, res) \
261 csilk_app_add_route_perm(app, "OPTIONS", path, handler, perm, res)
266#define csilk_app_head(app, path, handler) csilk_app_add_route(app, "HEAD", path, handler)
268#define csilk_app_head_ext(app, path, handler, in, out, summary, desc) \
269 csilk_app_add_route_extended(app, "HEAD", path, handler, in, out, summary, desc)
271#define csilk_app_head_perm(app, path, handler, perm, res) \
272 csilk_app_add_route_perm(app, "HEAD", path, handler, perm, res)
280void csilk_app_static(csilk_app_t* app,
const char* prefix,
const char* root_dir);
Main application structure containing config, router, server, and groups.
Definition app.c:162
void csilk_app_add_route_perm(csilk_app_t *app, const char *method, const char *path, csilk_handler_t handler, const char *perm_required, const char *perm_resource)
Register a route with permission metadata.
Definition app.c:667
void csilk_app_static(csilk_app_t *app, const char *prefix, const char *root_dir)
Serve static files from a local directory.
Definition app.c:724
void csilk_app_add_route(csilk_app_t *app, const char *method, const char *path, csilk_handler_t handler)
Register a route with a single handler.
Definition app.c:581
csilk_server_t * csilk_app_server(csilk_app_t *app)
Get the underlying server for advanced operations.
Definition app.c:837
void csilk_app_set_server_config(csilk_app_t *app, csilk_server_config_t c)
Apply server-level configuration (timeouts, limits, TCP options).
Definition app.c:769
void csilk_app_enable_openapi(csilk_app_t *app, int enable)
Enable or disable the built-in /openapi.json endpoint. The endpoint is enabled by default when the ap...
Definition app.c:565
void csilk_app_use(csilk_app_t *app, csilk_handler_t h)
Register a global middleware that runs on every route.
Definition app.c:505
void csilk_app_log_json(csilk_app_t *app, int enable)
Enable or disable JSON structured log output.
Definition app.c:484
csilk_router_t * csilk_app_router(csilk_app_t *app)
Get the underlying router for advanced operations.
Definition app.c:827
csilk_app_t * csilk_app_new(const char *config_path)
Create a new application with optional YAML config.
Definition app.c:316
int csilk_app_run(csilk_app_t *app, int port)
Start the server and block until stopped (Ctrl+C).
Definition app.c:812
void csilk_app_free(csilk_app_t *app)
Deallocate all application resources.
Definition app.c:415
void csilk_app_add_route_extended(csilk_app_t *app, const char *method, const char *path, csilk_handler_t handler, const char *input_type, const char *output_type, const char *summary, const char *description)
Register a route with OpenAPI metadata (input/output types).
Definition app.c:605
void csilk_app_add_handlers(csilk_app_t *app, const char *method, const char *path, csilk_handler_t *handlers, size_t n)
Register a route with multiple handlers (middleware + handler).
Definition app.c:686
void csilk_app_apply_config(csilk_app_t *app)
Auto-apply built-in middleware based on current config.
Definition app.c:542
csilk_config_t * csilk_app_config(csilk_app_t *app)
Get a copy of the current application configuration.
Definition app.c:787
void csilk_app_log_level(csilk_app_t *app, csilk_log_level_t level)
Set the minimum log level.
Definition app.c:443
void csilk_app_use_group(csilk_app_t *app, const char *prefix, csilk_handler_t h)
Register a middleware that runs only on a specific prefix group.
Definition app.c:523
void csilk_app_add_route_extended_perm(csilk_app_t *app, const char *method, const char *path, csilk_handler_t handler, const char *input_type, const char *output_type, const char *summary, const char *description, const char *perm_required, const char *perm_resource)
Register a route with full metadata including permissions.
Definition app.c:629
void csilk_app_log_file(csilk_app_t *app, const char *path, size_t max_sz)
Enable file logging with optional rotation.
Definition app.c:462
High-performance C web framework — main public API header.
Top-level application configuration.
Definition csilk.h:1000
The main HTTP router.
Definition csilk.h:1419
Low-level server configuration options.
Definition csilk.h:953
void(* csilk_handler_t)(csilk_ctx_t *c)
Function pointer for route handlers and middleware.
Definition csilk.h:120
csilk_log_level_t
Log severity levels.
Definition csilk.h:739