> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gridbeds.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Test: mock e sandbox

> Sviluppa oggi su un mock generato dal contratto, e verifica la tua integrazione sulla sandbox quando apre.

<Warning>
  **Anteprima: non è ancora attivo nulla.** La sandbox non è aperta: apre con la prima chiave di test. Fino ad allora, un mock generato dal contratto risponde a ogni operazione.
</Warning>

## Sviluppa su un mock

Un server mock generato dal contratto, il documento OpenAPI da cui sono generate le pagine sotto **Riferimento**, risponde a ogni operazione prima che sia attiva. Con [Prism](https://github.com/stoplightio/prism):

```sh theme={null}
npx @stoplight/prism-cli mock --dynamic distribution-v1.yaml
```

Fissa una versione esatta 5.x di Prism (`@stoplight/prism-cli@5.x.y`). Con `--dynamic`, Prism genera le risposte dagli schemi del contratto invece di ripetere un solo esempio. Il file del contratto è `distribution-v1.yaml`; scrivi a [support@gridbeds.com](mailto:support@gridbeds.com) se non ce l'hai ancora. Dallo stesso documento si possono generare librerie client.

## La sandbox

La sandbox è `https://staging-api.gridbeds.com/api/v1/distribution`, e si usa con una chiave `gbd_test_` ([Autenticazione](/it/distribution-api/authentication)). Apre con la prima chiave di test, rilasciata dal team di Gridbeds.

Quando è aperta, `prism proxy` controlla le risposte della sandbox rispetto al contratto mentre il tuo client ci parla:

```sh theme={null}
npx @stoplight/prism-cli proxy distribution-v1.yaml https://staging-api.gridbeds.com/api/v1/distribution
```

## Cosa provare

* Una prima lettura completa di ogni elenco, poi una seconda con `updated_since` che riporta solo quello che è cambiato, come in [Sincronizzazione](/it/distribution-api/synchronisation).
* Un tombstone, sia `withdrawn` sia `deleted`, su ogni risorsa, e un valore di enumerazione che il tuo codice non conosce.
* Un `410` per un `updated_since` più vecchio di 35 giorni, che deve far partire una risincronizzazione.
* Un avviso consegnato due volte, fuori ordine, con una versione più bassa di quella che hai, e con una firma sbagliata o un timestamp scaduto ([Webhook](/it/distribution-api/webhooks)).
* Un `429` con `Retry-After` ([Errori e limiti](/it/distribution-api/errors-and-limits)).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.