splitwise-sdk
v1.6.0
Published
Splitwise API SDK for Node.js
Downloads
168
Readme
Splitwise SDK
Dieses Projekt ist ein SDK für die Splitwise API. Es unterstützt sowohl die OAuth‑basierte Authentifizierung (über consumerKey/consumerSecret) als auch die direkte Nutzung eines vorhandenen accessToken.
Nutzung
Erstelle eine Instanz des Clients und rufe API-Endpunkte auf. Beispiel:
import { SplitwiseClient } from "splitwise-sdk";
const sw = new SplitwiseClient({
consumerKey: "your_consumer_key",
consumerSecret: "your_consumer_secret",
// Alternativ:
// accessToken: 'your_access_token'
logger: console.log,
});
sw.getCurrentUser()
.then((userData) => console.log("Aktueller Benutzer:", userData))
.catch((err) => console.error("Fehler:", err));Architektur
Eine detaillierte Beschreibung der Projektarchitektur, der Komponenten und des Entwicklungs-Workflows findest du in der ARCHITEKTUR.md.
API-Endpunkte
Das SDK unterstützt die meisten Endpunkte, die in der OpenAPI‑Definition der Splitwise API definiert sind, darunter:
- Benutzerverwaltung:
getCurrentUser,getUser,updateUser - Gruppenverwaltung:
getGroups,getGroup,createGroup,deleteGroup,undeleteGroup,addUserToGroup,removeUserFromGroup - Freunde:
getFriends,getFriend,createFriend,createFriends,deleteFriend - Währungen:
getCurrencies - Ausgaben:
getExpense,getExpenses,createExpense,updateExpense,deleteExpense,undeleteExpense - Kommentare:
getComments,createComment,deleteComment - Benachrichtigungen:
getNotifications - Kategorien:
getCategories
Weitere Details zu den Parametern und Rückgabetypen findest du in der OpenAPI‑Definition.
Entwicklung
Semantic Commits
Dieses Projekt verwendet semantic-release in Kombination mit @semantic-release/commit-analyzer.
Daher müssen alle Commits einem bestimmten Format folgen und einen gültigen Typ enthalten.
Wenn du magst, kann ich auch noch einen kurzen Beispiels-Commit oder weiterführende Hinweise ergänzen.
Typen aus OpenAPI generieren (optional)
Download OpenAPI specification on dev.splitwise.com
Falls du automatische Typdefinitionen aus der OpenAPI-Datei erstellen möchtest, kannst du das Tool openapi-typescript verwenden.
Schritt 1: OpenAPI-Schema korrigieren (Optionale Felder entfernen)
Da OpenAPI oft alle Felder als optional definiert, stellen wir sicher, dass required-Felder korrekt gesetzt werden, indem wir unser Skript ausführen:
node update_openapi.jsDadurch wird die Datei api.json aktualisiert und als api_updated.json gespeichert.
Schritt 2: OpenAPI in TypeScript-Typen umwandeln
Nun können wir aus der bereinigten OpenAPI-Datei TypeScript-Typen generieren:
npx openapi-typescript openapi_updated.json --output src/types/openapi-types.tsDas erzeugt eine Datei openapi-types.ts, die die Schnittstellen für deine API enthält.
Lokale Entwicklung
Um die lokale Entwicklung zu erleichtern und Änderungen direkt in anderen Projekten zu testen, kannst du npm link verwenden. Dies erlaubt es, dein Paket in einem anderen Node.js-Projekt zu nutzen, ohne es erneut zu veröffentlichen.
Link im lokalen Repository erstellen:
Wechsle in das Verzeichnis deines Projekts und erstelle den globalen Link:npm linkProjekt mit dem lokalen Paket verbinden:
In einem anderen Projekt, das dein Paket nutzt, kannst du nun den Link setzen:npm link splitwise-sdkDadurch wird das lokale Entwicklungsverzeichnis als Abhängigkeit eingebunden.
Änderungen testen:
Nach jeder Code-Änderung kannst du dein Paket neu bauen und die Änderungen sind direkt verfügbar:npm run buildLink wieder entfernen (optional):
Falls du wieder zur offiziellen Version aus demnpm-Registry wechseln möchtest, entferne den Link mit:npm unlink splitwise-sdk
Durch diese Vorgehensweise kannst du Änderungen am SDK effizient testen, ohne es jedes Mal neu veröffentlichen zu müssen. 🚀
Lizenz
Dieses Projekt steht unter der MIT‑Lizenz.
