@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
JavaScript
/**
* 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;
}