1pub mod api_dto;
8pub mod canonical_trace;
9pub mod error_layer;
10pub mod odata;
11pub mod openapi_registry;
12pub mod operation_builder;
13pub mod problem;
14pub mod response;
15pub mod select;
16pub mod trace_layer;
17
18#[cfg(test)]
19#[cfg_attr(coverage_nightly, coverage(off))]
20mod odata_policy_tests;
21
22pub use error_layer::{
23 IntoProblem, error_mapping_middleware, extract_trace_id, map_error_to_problem,
24};
25pub use openapi_registry::{OpenApiInfo, OpenApiRegistry, OpenApiRegistryImpl, ensure_schema};
26pub use operation_builder::{
27 Missing, OperationBuilder, OperationSpec, ParamLocation, ParamSpec, Present, RateLimitSpec,
28 ResponseSpec, state,
29};
30pub use problem::{
31 APPLICATION_PROBLEM_JSON, Problem, ValidationError, bad_request, conflict, internal_error,
32 not_found,
33};
34pub use select::{apply_select, page_to_projected_json, project_json};
35pub use trace_layer::{WithRequestContext, WithTraceContext};
36
37pub mod prelude {
39 pub use crate::result::ApiResult;
41
42 pub use super::problem::Problem;
44
45 pub use super::response::{JsonBody, JsonPage, created_json, no_content, ok_json};
47
48 pub use super::select::apply_select;
50
51 pub use axum::{Json, http::StatusCode, response::IntoResponse};
53}
54
55pub mod canonical_prelude {
66 pub use modkit_canonical_errors::{CanonicalError, Problem, resource_error};
68
69 pub type ApiResult<T = ()> = std::result::Result<T, Problem>;
72
73 pub use super::canonical_trace::CanonicalProblemMigrationExt;
76
77 pub use super::response::{JsonBody, JsonPage, created_json, no_content, ok_json};
79 pub use super::select::apply_select;
80 pub use axum::{Json, http::StatusCode, response::IntoResponse};
81}