---
title: "Użycie w przeglądarce i na serwerze"
description: "Które metody SDK sklep internetowy w przeglądarce może wywołać z kluczem publicznym, które należą do serwera z kluczem tajnym i jak połączyć oba w Next.js lub Nuxt."
canonical_url: "https://requiply.com/docs/pl/developers/typescript-sdk/browser-and-server-usage"
---
# Użycie w przeglądarce i na serwerze

> Które metody SDK sklep internetowy w przeglądarce może wywołać z kluczem publicznym, które należą do serwera z kluczem tajnym i jak połączyć oba w Next.js lub Nuxt.

## Wywołania z przeglądarki i sklepu internetowego

Klucz publiczny może wywoływać te metody bezpośrednio z przeglądarki:

- `org.info()`
- `categories.list()`, `services.list()`, `inventory.list()`, `inventory.getGroup()`
- `availability.calendar()`, `availability.items()`, `pricing.quote()`
- `bookings.create({ ..., asRequest: true })`
- `saleItems.list()`, `saleItems.get()` oraz `saleLines` w wycenach i zapytaniach o rezerwację, gdy organizacja [sprzedaje klientom](https://requiply.com/docs/pl/developers/typescript-sdk/sales#z-kluczem-publicznym)

Publiczne API przyjmuje żądania z przeglądarki z dowolnego źródła, więc nie trzeba rejestrować żadnej domeny. SDK samo wysyła tylko nagłówki `Authorization`, `Accept` i `Content-Type`. Jeśli dodasz własne nagłówki, przeglądarki zablokują żądanie. Zobacz [Opcje żądań](https://requiply.com/docs/pl/developers/typescript-sdk/request-options#nag%C5%82%C3%B3wki-dla-ca%C5%82ego-klienta).

## Wywołania z serwera

Klucza tajnego z zaufanego serwera używaj do:

- `org.summary()`, `inventory.status()`
- Zwykłych rezerwacji: `bookings.create()` bez `asRequest`, `bookings.list()`, `bookings.get()`, `bookings.addNote()`
- `clients.lookup()`, `clients.create()`
- `sales.list()`, `sales.get()`, `sales.create()`
- Wszystkich [raportów](https://requiply.com/docs/pl/developers/typescript-sdk/reports)
- `adjustment` i `allowOutsideWorkingHours` w rezerwacjach oraz pozycji z podnajmu od dostawców

Klucze tajne należą do zmiennych środowiskowych serwera. Nie nadawaj im prefiksu, który udostępnia wartości w paczkach przeglądarkowych, takiego jak `NEXT_PUBLIC_` lub `NUXT_PUBLIC_`.

## Frameworki

Używaj bezpośrednio `@requiply/api-sdk`. Typowa konfiguracja tworzy dwóch klientów:

```ts
// 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! });
```

Trzymaj klienta serwerowego w module, który importuje wyłącznie kod serwera. Jeśli klient z kluczem tajnym mimo to zostanie utworzony w przeglądarce, SDK zgłosi `TypeError` zamiast wysłać klucz.

## Operatorzy płatności

`bookings.create()` i `sales.create()` przyjmują `payOnPickup`, `stripe`, `wayforpay`, `monobank` i `liqpay`. Metoda online wymaga aktywnej [integracji płatności](https://requiply.com/docs/pl/guides/settings/integrations/payments) z danym operatorem. Odpowiedź zawiera wtedy `paymentUrl`, na który należy przekierować klienta (rezerwacje zwracają też `paymentRedirect`, który może być wysłaniem formularza).

<note>

`supportedPaymentMethods` w `org.info()` i `org.summary()` wymienia `payOnPickup` oraz połączone integracje `monobank`, `liqpay` i `wayforpay`, ale nie Stripe, nawet gdy jest połączony. SDK typuje to pole wszystkimi metodami płatności, więc Twój kod będzie działać dalej, gdy Stripe zostanie dodany.

</note>


## Sitemap

See the full [sitemap](https://requiply.com/docs/sitemap.md) for all pages.
