Uso en el navegador y en el servidor
Llamadas desde el navegador y la tienda online
Una clave publicable puede ejecutar estos métodos directamente desde el navegador:
org.info()categories.list(),services.list(),inventory.list(),inventory.getGroup()availability.calendar(),availability.items(),pricing.quote()bookings.create({ ..., asRequest: true })saleItems.list(),saleItems.get()ysaleLinesen los presupuestos y las solicitudes de reserva, mientras la organización vende a los clientes
La API pública acepta peticiones del navegador desde cualquier origen, así que no hay que registrar ningún dominio. Por sí solo, el SDK solo envía las cabeceras Authorization, Accept y Content-Type. Si añades cabeceras personalizadas, los navegadores bloquean la petición; consulta Opciones de petición.
Llamadas desde el servidor
Usa una clave secreta desde un servidor de confianza para:
org.summary(),inventory.status()- Reservas normales:
bookings.create()sinasRequest,bookings.list(),bookings.get(),bookings.addNote() clients.lookup(),clients.create()sales.list(),sales.get(),sales.create()- Todos los informes
adjustmentyallowOutsideWorkingHoursen las reservas, y los productos de subalquiler de proveedores
Las claves secretas van en variables de entorno del servidor. No les pongas un prefijo que exponga sus valores a los paquetes del navegador, como NEXT_PUBLIC_ o NUXT_PUBLIC_.
Frameworks
Usa @requiply/api-sdk directamente. Una configuración habitual crea dos clientes:
// lib/requiply.ts
import { RequiplyClient } from '@requiply/api-sdk';
// Safe to ship to the browser.
export const storefront = new RequiplyClient({
apiKey: 'rq_pk_live_...',
});
// Import only from server code: route handlers, server actions, Nuxt server/ routes.
export const createServerClient = () =>
new RequiplyClient({ apiKey: process.env.REQUIPLY_SECRET_KEY! });
Pon el cliente de servidor en un módulo que solo importe el código de servidor. Si, aun así, se crea un cliente con clave secreta en un navegador, el SDK lanza un TypeError en lugar de enviar la clave.
Pasarelas de pago
bookings.create() y sales.create() aceptan payOnPickup, stripe, wayforpay, monobank y liqpay. Un método online necesita una integración de pagos activa para esa pasarela; en ese caso, la respuesta incluye un paymentUrl al que enviar al cliente (las reservas también devuelven paymentRedirect, que puede ser un envío de formulario).
supportedPaymentMethods en org.info() y org.summary() lista payOnPickup y las integraciones conectadas de monobank, liqpay y wayforpay, pero no Stripe, aunque esté conectado. El SDK tipa el campo con todos los métodos de pago para que tu código siga funcionando cuando se añada Stripe.