Використання в браузері та на сервері
Виклики з браузера та вітрини
Публічний ключ може виконувати ці методи просто з браузера:
org.info()categories.list(),services.list(),inventory.list(),inventory.getGroup()availability.calendar(),availability.items(),pricing.quote()bookings.create({ ..., asRequest: true })saleItems.list(),saleItems.get(), а такожsaleLinesу розрахунках ціни та запитах на бронювання, поки організація продає клієнтам
Публічний API приймає запити з браузера з будь-якого джерела, тож домен реєструвати не потрібно. Сам SDK надсилає лише такі заголовки: Authorization, Accept, Content-Type. Якщо додати власні заголовки, браузери заблокують запит; див. Параметри запитів.
Серверні виклики
Використовуйте секретний ключ на довіреному сервері для:
org.summary(),inventory.status()- Звичайних бронювань:
bookings.create()безasRequest,bookings.list(),bookings.get(),bookings.addNote() clients.lookup(),clients.create()sales.list(),sales.get(),sales.create()- Усіх звітів
adjustmentіallowOutsideWorkingHoursу бронюваннях, а також товарів суборенди від постачальників
Секретним ключам місце в змінних середовища сервера. Не давайте їм префікса, який відкриває значення для браузерних бандлів, як-от NEXT_PUBLIC_ чи NUXT_PUBLIC_.
Фреймворки
Використовуйте @requiply/api-sdk напряму. Типове налаштування створює два клієнти:
// 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! });
Тримайте серверний клієнт у модулі, який імпортує лише серверний код. Якщо клієнт із секретним ключем усе ж створять у браузері, SDK викине TypeError замість того, щоб надіслати ключ.
Платіжні провайдери
bookings.create() і sales.create() приймають такі значення: payOnPickup, stripe, wayforpay, monobank, liqpay. Онлайн-спосіб оплати потребує активної платіжної інтеграції для цього провайдера. Тоді відповідь містить paymentUrl, на який треба перенаправити клієнта (бронювання також повертають paymentRedirect, який може бути надсиланням форми).
supportedPaymentMethods в org.info() і org.summary() перелічує payOnPickup і підключені інтеграції (monobank, liqpay, wayforpay), але не Stripe, навіть коли його підключено. SDK типізує це поле з усіма способами оплати, тож ваш код працюватиме й тоді, коли додадуть Stripe.