UNPKG

@gov-cy/govcy-express-services

Version:

An Express-based system that dynamically renders services using @gov-cy/govcy-frontend-renderer and posts data to a submission API.

18 lines (15 loc) 620 B
/** * Determines if a request is targeting an API endpoint. * Currently matches: * - Accept header with application/json * - URLs ending with /upload or /download under a site/page structure * * @param {object} req - Express request object * @returns {boolean} */ export function isApiRequest(req) { const acceptJson = (req.headers?.accept || "").toLowerCase().includes("application/json"); const apiUrlPattern = /^\/apis\/[^/]+\/[^/]+(?:\/.*)?\/(upload|download)$/; const isStructuredApiUrl = apiUrlPattern.test(req.originalUrl || req.url); return acceptJson || isStructuredApiUrl; }