Writing Handler Middleware
The basics of handler middleware
import {
OperationRequestContext,
OperationMiddlewareNextFunction,
} from "@simply-openapi/controllers";
export async function operationHandlerJsonResponseMiddleware(
context: OperationRequestContext,
next: OperationMiddlewareNextFunction,
) {
const result = await next();
if (result === undefined) {
// An undefined result indicates another middleware already handled the result and there is nothing further to do.
return;
}
if (isJSON(result)) {
// We understand this result, translate it for express.
context.res.status(HttpStatusCodes.OK);
context.res.setHeader("Content-Type", "application/json");
context.res.json(result);
// We handled the result, so forward `undefined` to let upstream middleware know the result was handled.
return undefined;
}
// We don't know what this is, let the next handler up the chain interpret it.
return result;
}Middleware basics
The Middleware Context
Middleware factories
Writing middleware for request validation
Basic request validation
Schema based validation
Middleware for data extraction
Requst DataMiddleware for result transmission
Default middleware
Last updated