Vai al contenuto

SDK JavaScript

Il client che l'API pubblica su /sdk.js e /sdk.mjs, generato dalla specifica stessa. Come caricarlo nel browser e in Node, i metodi per argomento, come passare parametri e corpo, la gestione degli errori e le opzioni del client.

L'API pubblica un SDK JavaScript generato dalla specifica OpenAPI stessa. Copre tutte le operazioni, invia gli header al posto tuo, estrae il contenuto dall'involucro delle risposte e trasforma gli errori in eccezioni.

FileUso
/sdk.jsUMD: <script src> (espone Memberfy) oppure require() in Node
/sdk.mjsESM: import { createClient } from '…/sdk.mjs'

Iniziare nel browser

<script src="https://api.memberfy.net/sdk.js"></script>
<script>
  const api = Memberfy.createClient({ baseUrl: 'https://api.memberfy.net' });

  const session = await api.auth.login({ email, password });
  api.setToken(session.token).setCommunity(communityId);

  const me = await api.auth.getMe();
</script>

Passa sempre il baseUrl con https://.

Iniziare in Node

Scarica il file nel progetto e importalo in locale (Node 18 o successivo, che ha già fetch):

curl -s https://api.memberfy.net/sdk.mjs -o memberfy-sdk.mjs
import { createClient } from './memberfy-sdk.mjs';

const api = createClient({ baseUrl: 'https://api.memberfy.net' });
const session = await api.auth.login({ email: process.env.MEMBERFY_EMAIL, password: process.env.MEMBERFY_PASSWORD });
api.setToken(session.token).setCommunity(process.env.MEMBERFY_COMMUNITY_ID);

Scaricalo di nuovo quando vuoi aggiornarlo.

Che cosa fa per te

HeaderAuthorization, X-CommunityId, X-ProfileId e Accept-Language, a partire da setToken, setCommunity, setProfile e setLanguage
InvolucroRestituisce direttamente data; gli elenchi restituiscono { data, pagination }
ErroriLancia MemberfyError, con .status, .body ed .errors
SessioneonUnauthorized viene chiamato a un 401, così puoi rifare il login

I metodi

I metodi sono raggruppati per argomento (lo stesso del riferimento): api.auth, api.products, api.subscriptions, api.coupons, api.sectionsSpaces, api.events… Il nome del metodo deriva dall'operationId dell'operazione: api.products.postCommunitiesByCommunityIdProducts, api.profiles.getList, api.auth.login.

Alcuni nomi portano ancora CommunitiesByCommunityId da quando la rotta aveva la community nel percorso. Dal 6 ottobre 2026 nessuna rotta porta la community nel percorso, ma i nomi sono rimasti, perché nel tuo codice non si rompa nulla. La community va sempre con setCommunity. Vedi X-CommunityId.

Nella pagina di ogni endpoint del riferimento compare l'operationId.

Parametri e corpo

I parametri di percorso e di query si passano per nome; tutto il resto diventa il corpo:

api.setCommunity(communityId); // the community goes in the X-CommunityId header

await api.products.putCommunitiesByCommunityIdProductsById({
  id: productId,               // goes to the path
  type: 'SUBSCRIPTION',        // body
  title: 'Studente · Mensile', // body
  price: 49,                   // body
  billingInterval: 'MONTHLY',  // body
  allowedPaymentMethods: ['PIX', 'CREDIT_CARD', 'BOLETO'],
});

Puoi anche separarli: { id, body: { … } }. Non passare communityId negli argomenti: non essendo più un parametro di percorso, finirebbe nel corpo. Altre opzioni per chiamata: headers (header aggiuntivi), query (parametri di query in più) e signal (un AbortController).

Per qualsiasi rotta c'è api.request({ httpMethod, path, pathParams, queryParams, hasBody }, args).

Gestire gli errori

try {
  await api.coupons.postCommunitiesByCommunityIdCouponsValidate({ code: 'LANCIO20' });
} catch (error) {
  if (error.name === 'MemberfyError') {
    console.log(error.status);  // 400
    console.log(error.errors);  // [{ param: 'code', message: 'Il coupon è scaduto' }]
  }
}

Opzioni del client

OpzioneA cosa serve
baseUrlL'indirizzo dell'API. Usa https://api.memberfy.net
token, communityId, profileId, languageValori iniziali degli header
raw: trueRestituisce il corpo grezzo, con l'involucro
onUnauthorizedFunzione chiamata a un 401
fetchUn'implementazione di fetch, per ambienti che non hanno quella nativa

Sempre aggiornato

L'SDK viene generato ogni volta che viene servito, a partire dalle rotte dell'API. Scaricarlo di nuovo significa aggiornarlo.

Per l'IA

Perché un assistente generi chiamate corrette, forniscigli anche il /docs.txt: l'SDK dice come chiamare; il /docs.txt dice che cosa inviare.

Correlati