dispatchApiRoute
función
Atiende una petición de API para un host propio: ejecuta el endpoint, normaliza los errores en
{ code, status, requestId }, informa los fallos 5xx a onError y añade x-request-id, la
cookie de sesión y el token CSRF. Nunca rechaza. Desde 1.7, si el endpoint declara form y
la petición es un formulario nativo, responde 303 See Other con el resultado en una cookie de
un solo uso (salvo 403 por Origin o CSRF); executeApiRoute sigue aceptando sólo JSON.
import { dispatchApiRoute } from "@meekojs/meeko/server";Source code src/server/api/runtime.ts:145
Firma #
function dispatchApiRoute<P extends Schema | undefined, Q extends Schema | undefined, B extends Schema | undefined, R extends Schema | undefined, S, L = undefined, T extends ApiSuccessStatus = ApiSuccessStatus>(definition: ApiRouteDefinition<P, Q, B, R, S, L, T>, context: RequestContext<S>, sessions: SessionManager, params?: unknown, onError?: ServerErrorObserver): Promise<Response>Type parameters #
-
Pextends Schema | undefined -
Qextends Schema | undefined -
Bextends Schema | undefined -
Rextends Schema | undefined -
S -
L= undefined -
Textends ApiSuccessStatus = ApiSuccessStatus
Parameters #
-
definitionApiRouteDefinition<P, Q, B, R, S, L, T> Endpoint declarado con
defineApiRoute.-
contextRequestContext<S> Contexto de la petición.
-
sessionsSessionManager Gestor de sesiones.
-
paramsunknownoptional Parámetros de la ruta sin validar.
-
onErrorServerErrorObserveroptional Observador de los fallos internos.
Returns #
-
Promise<Response> La respuesta final.
Example #
import { dispatchApiRoute } from "@meekojs/meeko/server";
import userRoute from "./server/api/users/[id].get.js";
const response = await dispatchApiRoute(userRoute, context, sessions, { id: "123" }, (error, id) => console.error(id, error));