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.
| File | Uso |
|---|---|
/sdk.js | UMD: <script src> (espone Memberfy) oppure require() in Node |
/sdk.mjs | ESM: 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
| Header | Authorization, X-CommunityId, X-ProfileId e Accept-Language, a partire da setToken, setCommunity, setProfile e setLanguage |
| Involucro | Restituisce direttamente data; gli elenchi restituiscono { data, pagination } |
| Errori | Lancia MemberfyError, con .status, .body ed .errors |
| Sessione | onUnauthorized 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
| Opzione | A cosa serve |
|---|---|
baseUrl | L'indirizzo dell'API. Usa https://api.memberfy.net |
token, communityId, profileId, language | Valori iniziali degli header |
raw: true | Restituisce il corpo grezzo, con l'involucro |
onUnauthorized | Funzione chiamata a un 401 |
fetch | Un'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.