Guía del marco: enrutador de aplicaciones
@markpdf/nextjs cubre los dos patrones comunes de App Router para exponer la conversión de documentos a su interfaz de usuario: Controladores de ruta (cuando desea su propio punto final HTTP, por ejemplo, para llamarlo desde fetch en el cliente o desde otro servicio) y Acciones del servidor (cuando el formulario y la lógica del servidor se encuentran en el mismo archivo, sin definir una ruta).
Regla general: la clave API nunca sale del servidor
El paquete completo supone que se importa únicamente desde:- Controladores de ruta (
app/**/route.ts) - Acciones del servidor (
"use server") - Componentes del servidor
Controlador de ruta: createConvertRouteHandler
app/api/convert/route.ts
string
requerido
Su clave API. Léelo siempre desde
process.env, nunca lo codifiques.ConvertOptions
number
Límite propio antes de reenviar a API: útil para reducir cargas enormes en el borde de tu aplicación sin gastar API cuota.
- Analice
multipart/form-datadeRequest. - Reenvíe el archivo a
POST /convert/rawcon@markpdf/sdk. - Devuelve la respuesta para API tal cual (Markdown o JSON), incluido el
content-typecorrecto. - Traduzca los errores de SDK (
MarkpdfAuthError,MarkpdfPayloadTooLargeError, etc.) a HTTP respuestas con el mismo código de estado.
Personaliza el controlador
Si necesita lógica adicional (autenticación de su propia aplicación, registro, su propia limitación de velocidad), utilice el cliente directamente en lugar del asistente todo en uno:app/api/convert/route.ts
Acción del servidor: convertFormData y convertUrlAction
app/actions.ts
Transmisión en un controlador de ruta
app/api/convert/stream/route.ts
ReadableStream al cliente sin almacenamiento en búfer, por lo que el cliente comienza a recibir Markdown antes de que finalice la conversión. Consulte Transmisión y asíncrono.
Tiempo de ejecución: nodo frente a borde
@markpdf/nextjs funciona en ambos tiempos de ejecución de Next.js:
app/api/convert/route.ts
Para cargas grandes (PDF de decenas de MB), utilice
runtime = "nodejs". El tiempo de ejecución perimetral de Next.js tiene límites de tamaño de solicitud más bajos que dependen de su proveedor de alojamiento.