ОUЯUKΛ / Dokumentation

Einleitung

Ouruka ist ein cloud-nativer REST-API-Dienst zur Generierung eindeutiger, strukturierter IDs. Er richtet sich an Entwickler und Systemintegratoren, die in ihren Anwendungen zuverlässig einzigartige Identifikatoren benötigen — ohne selbst Logik für Zähler, Datumsstempel oder Eindeutigkeitsgarantien implementieren zu müssen.

Typische Einsatzbereiche

  • Produktinformationssysteme (PIM): Einheitliche Artikel- und Produktnummern über mehrere Verkaufskanäle hinweg.
  • ERP-Systeme: Belegnummern, Auftragsnummern und Lieferscheinnummern in einheitlichem Format.
  • Webshops und E-Commerce: Bestellnummern, Kundennummern und Transaktions-IDs.
  • Logistik: Sendungsnummern, Paletten-IDs und Versandlabels.
  • Healthcare: Patientenakten-Nummern, Proben-IDs und Vorgangsnummern.
  • Produktion und Fertigung: Seriennummern, Chargenbezeichnungen und Qualitäts-IDs.

Ouruka läuft produktiv unter ouruka.com und ist von überall erreichbar. Die vollständige API-Dokumentation mit interaktivem Testbereich ist unter ouruka.com/swagger/ verfügbar.

Schnellstart

In drei Schritten zur ersten generierten ID:

  1. Paket wählen & registrieren

    Wählen Sie ein Paket (Discovery, Solar, Galaxy oder Universe) und schließen Sie die Registrierung ab. Das System legt automatisch Ihren persönlichen Tenant an — Ihren isolierten Bereich im Ouruka-System — und stellt Ihnen dabei einmalig einen api_key aus.

    Den API-Key sicher aufbewahren — er wird nur einmalig ausgegeben und ist für alle weiteren API-Aufrufe erforderlich.

  2. Schema erstellen

    Ein Schema definiert das Format der IDs. Sie legen fest, aus welchen Bausteinen — Datum, Zähler, feste Zeichen, Variablen — sich eine ID zusammensetzt.

    HTTP Request
    POST /v2/schema
    X-API-KEY: <Ihr API-Key>
    
    {
      "name":    "bestellnummer",
      "pattern": "ORD-{DATE:YYYY}{DATE:MM}-{COUNTER:5}"
    }

    Dieses Pattern erzeugt IDs wie ORD-202503-00001.

  3. ID generieren

    Mit dem Namen des Schemas rufen Sie die nächste ID ab. Ouruka stellt sicher, dass jede generierte ID eindeutig ist — auch bei parallelen Anfragen.

    HTTP Request
    POST /v2/id/generate
    X-API-KEY: <Ihr API-Key>
    
    {
      "schema": "bestellnummer"
    }
    Response 200 OK
    {
      "id": "ORD-202503-00042"
    }

Authentifizierung

Alle Endpunkte, die Daten lesen oder schreiben, erfordern einen gültigen API-Key. Dieser wird als HTTP-Header übermittelt:

HTTP Header
X-API-KEY: <Ihr API-Key>

Der API-Key wird bei der Registrierung automatisch vom System ausgegeben. Er identifiziert Ihren Tenant eindeutig und steuert den Zugriff auf alle Ihre Schemas, Zähler und ID-Historien.

🔐
  • Speichern Sie den API-Key nie im Quellcode oder in versionierten Dateien.
  • Verwenden Sie Umgebungsvariablen oder Secret-Manager (z.B. AWS Secrets Manager, HashiCorp Vault, Kubernetes Secrets).
  • Geben Sie den Key nicht an Dritte weiter. Jeder mit Kenntnis des Keys kann in Ihrem Namen IDs generieren.
  • Der Key wird ausschließlich über HTTPS übertragen.

ID-Generierung mit Schemas

Schemas sind das Herzstück von Ouruka. Sie definieren das exakte Format einer ID durch ein Pattern — eine Zeichenkette, in der feste Textelemente mit dynamischen Platzhaltern kombiniert werden.

Pattern → Ergebnis
ART-{DATE:YY}{DATE:MM}-{COUNTER:4}ART-2503-0017

{DATE:YYYY}

Fügt das vierstellige Jahr des Generierungszeitpunkts ein (z.B. 2025).

PatternBeispiel-IDEinsatz
FB-{DATE:YYYY}-{COUNTER:6} FB-2025-000134 Logistik · Frachtbriefe
LAB-{DATE:YYYY}-{COUNTER:5} LAB-2025-00891 Healthcare · Laborproben

{DATE:YY}

Fügt die zweistellige Kurzform des Jahres ein (z.B. 25 für 2025). Spart Zeichen bei platzbeschränkten ID-Feldern.

PatternBeispiel-IDEinsatz
JKT-{DATE:YY}{DATE:MM}-{COUNTER:4} JKT-2503-0056 Fashion · Saisonkennzeichnung
SN{DATE:YY}{DATE:MM}{COUNTER:6} SN2504001782 Produktion · Seriennummern

{DATE:MM}

Fügt den zweistelligen Monat des Generierungszeitpunkts ein (01 bis 12).

PatternBeispiel-IDEinsatz
RE-{DATE:YYYY}-{DATE:MM}-{COUNTER:5} RE-2025-03-00421 E-Commerce · Rechnungen
RET{DATE:YY}{DATE:MM}-{COUNTER:4} RET2503-0088 Logistik · Retourenscheine

{DATE:DD}

Fügt den zweistelligen Tag des Generierungszeitpunkts ein (01 bis 31).

PatternBeispiel-IDEinsatz
BON-{DATE:YYYY}{DATE:MM}{DATE:DD}-{COUNTER:4} BON-20250318-0047 Gastronomie · Tagesbons
PA-{DATE:DD}{DATE:MM}{DATE:YY}-{COUNTER:3} PA-180325-014 Healthcare · Patientenaufnahmen

{COUNTER:N}

Fügt einen automatisch hochzählenden, nullaufgefüllten numerischen Zähler ein. N gibt die Mindestanzahl der Stellen an. Der Zähler beginnt beim definierten start_value (Standard: 1) und wird bei jeder ID-Generierung dieses Schemas um 1 erhöht.

Ouruka garantiert Atomarität — auch bei gleichzeitigen Anfragen aus mehreren Systemen wird jede Zahl nur einmal vergeben. Keine Race Conditions, kein Locking-Overhead.

ParameterBeschreibung
N Mindeststellenzahl (mit führender Null aufgefüllt). {COUNTER:4} + Wert 7 → 0007
start_value Optionaler Startwert beim Schema-Anlegen. Standard ist 1.
Patternstart_valueBeispiel-IDEinsatz
ORD-{DATE:YYYY}-{COUNTER:6} 1 ORD-2025-000342 E-Commerce · Bestellnummern
CH-{DATE:YYYY}-{COUNTER:5} 10000 CH-2025-10047 Pharma · Chargennummern

{VAR1} – {VAR4}

Die Platzhalter {VAR1} bis {VAR4} ermöglichen es, beim Generierungsaufruf eigene Werte in die ID einzubetten. Sie werden nicht automatisch gefüllt, sondern müssen bei jedem generate-Aufruf mitgegeben werden — etwa Ländercodes, Abteilungskennungen oder Produktgruppen.

Syntax-Varianten
{VAR1}      — Wert direkt eingefügt
{VAR1:-}    — Wert mit Bindestrich als Separator
{VAR2:/}    — Wert mit Schrägstrich als Separator

Der Separator erscheint nur, wenn der Wert nicht leer ist — so entstehen keine doppelten Trennzeichen in der ID.

PatternVAR1ErgebnisEinsatz
SEND-{DATE:YYYY}-{VAR1:-}{COUNTER:6} DE SEND-2025-DE-000071 Logistik · Sendungsnummern
SEND-{DATE:YYYY}-{VAR1:-}{COUNTER:6} FR SEND-2025-FR-000072 Logistik · Sendungsnummern
ART-{VAR1:-}{DATE:YY}-{COUNTER:5} ELEK ART-ELEK-25-00019 PIM · Produktnummern
ART-{VAR1:-}{DATE:YY}-{COUNTER:5} MODE ART-MODE-25-00020 PIM · Produktnummern

Zufalls-IDs (UID)

Neben strukturierten Schema-IDs bietet Ouruka zufallsbasierte Unikate. UIDs enthalten keine semantischen Informationen wie Datum oder Zähler — sie sind rein eindeutig und eignen sich für Tokens, API-Keys und alle Szenarien, in denen Anonymität und Zufälligkeit gefragt sind.

Numerische UIDs

Endpunkt
POST /v2/uid/numeric

Generiert eine zufällige numerische ID in der gewünschten Länge. Jede ID besteht ausschließlich aus Ziffern (0–9).

LängeBeispiel-UIDEinsatz
8 73920481 Gutscheincodes (telefonisch durchgebbar)
12 829401736254 Barcodes / EAN-kompatible Seriennummern

Alphanumerische UIDs

Endpunkt
POST /v2/uid/alpha

Generiert eine UID aus Buchstaben und Ziffern (a–z, A–Z, 0–9). Durch den größeren Zeichenraum ist die Kollisionswahrscheinlichkeit selbst bei kurzen Längen astronomisch gering — bei 16 Zeichen gibt es knapp 8 Quadrillionen mögliche Kombinationen.

LängeBeispiel-UIDEinsatz
24 aX7kP2mRnQz9wLvBcT4eYdJ0 Session-Tokens, Cookies
16 Kf3mX9pLrT2nVqBw Anonymisierungs-IDs für klinische Studien

String-Konvertierung (Keyify)

Endpunkt
POST /v2/keyify

Keyify konvertiert beliebige Freitext-Strings in URL-sichere, einheitlich formatierte Schlüssel. Typische Anwendungsfälle sind URL-Slugs, Datenbankschlüssel, technische Bezeichner oder suchmaschinenfreundliche Produkt-URLs aus natürlichsprachlichen Eingaben.

Transformationen

  • Leerzeichen werden durch Bindestriche (-) ersetzt
  • Sonderzeichen werden entfernt oder umgewandelt
  • Groß- und Kleinschreibung wird vereinheitlicht (Lowercase)
  • Deutsche Umlaute werden aufgelöst: ä→ae, ö→oe, ü→ue, ß→ss
  • Mehrfach aufeinanderfolgende Bindestriche werden bereinigt

Umlaut-Referenz

EingabeAusgabeEingabeAusgabe
äaeÄAe
öoeÖOe
üueÜUe
ßss

Praxisbeispiele

EingabeAusgabe (Keyify)Einsatz
Schwarze Lederjacke Größe XL schwarze-lederjacke-groesse-xl E-Commerce · Produkt-URLs
Herren-Uhr aus Edelstahl herren-uhr-aus-edelstahl E-Commerce · Produkt-URLs
Kühlschränke & Gefriergeräte kuehlschraenke-gefriergerate PIM · Kategorieschlüssel
Sportartikel / Outdoor sportartikel-outdoor PIM · Kategorieschlüssel

History

Ouruka protokolliert jede generierte ID in einer History-Liste, die pro Schema abrufbar ist. Gespeichert werden die generierte ID, der Zeitstempel (UTC) sowie optionale Metadaten.

Die History ermöglicht es, nachzuvollziehen, welche IDs wann generiert wurden — nützlich für Audits, Fehleranalysen und Workflows, die auf Vollständigkeit prüfen.

Endpunkt
GET /v2/history
X-API-KEY: <Ihr API-Key>

Speicherdauer nach Paket

PaketAufbewahrungsdauer
Discovery · TrialBegrenzte Anzahl an Einträgen
Solar · EinstiegMehrere Wochen
Galaxy · StandardMehrere Monate
Universe · KomplettIndividuell konfigurierbar

FAQ

Sind die IDs wirklich eindeutig?
Ja. Ouruka garantiert Eindeutigkeit innerhalb eines Schemas (bei Schema-IDs) bzw. innerhalb eines Tenants (bei UIDs). Zähler werden atomar inkrementiert — auch bei parallelen Anfragen wird jeder Zählerwert nur einmal vergeben. UIDs werden mit ausreichender Entropie erzeugt, sodass Kollisionen mit an Sicherheit grenzender Wahrscheinlichkeit ausgeschlossen sind.
Was passiert, wenn zwei Systeme gleichzeitig eine ID anfordern?
Ouruka verwendet atomare Redis-Operationen, um Race Conditions strukturell auszuschließen. Selbst wenn hunderte Anfragen im gleichen Millisekunden eingehen, erhält jede Anfrage eine andere, eindeutige ID. Es gibt keine Doppelvergaben — das ist keine Konvention, sondern eine architektonische Garantie.
Kann ich den Counter zurücksetzen?
Ein Reset des Zählers ist über die API möglich. Beachten Sie dabei, dass ein Reset zu bereits vergebenen Zählerwerten führen kann, falls das Pattern unverändert bleibt. Falls Eindeutigkeit auch nach einem Reset gewährleistet sein soll, empfehlen wir, gleichzeitig das Pattern anzupassen — z.B. durch Änderung eines Jahresteils oder eines festen Präfix.
Was ist der Unterschied zwischen Schema-IDs und UIDs?
Schema-IDs folgen einem selbst definierten Pattern und können lesbare, strukturierte Informationen enthalten (Datum, Zähler, Variablen). Sie eignen sich überall dort, wo die ID selbst eine Bedeutung trägt — z.B. Belegnummern oder Produktcodes.

UIDs sind rein zufällig generierte, bedeutungsfreie Zeichenketten. Sie eignen sich für technische Schlüssel, Tokens und Szenarien, in denen die ID keine semantischen Informationen tragen soll.
Wie sicher ist der API-Key?
Der API-Key wird ausschließlich über HTTPS übertragen. Er ist lang genug, um Brute-Force-Angriffe auszuschließen. Ouruka speichert API-Keys nicht im Klartext — nur als Hash. Sollte ein Key kompromittiert worden sein, kann er über die Tenant-Verwaltung rotiert werden. Bewahren Sie den Key stets außerhalb des Quellcodes auf.
Kann ich mehrere Schemas haben?
Ja. Pro Tenant können Sie beliebig viele Schemas anlegen. Jedes Schema hat seinen eigenen unabhängigen Zähler, seine eigene History und sein eigenes Pattern. Typischerweise legt man pro Entität oder Dokumententyp ein eigenes Schema an — z.B. eines für Bestellungen, eines für Rechnungen, eines für Kunden.
Kann ich Ouruka in bestehende Systeme integrieren?
Ja. Ouruka ist eine Standard-REST-API mit JSON-Payloads. Es gibt keine SDK-Abhängigkeiten und keine proprietären Protokolle. Jede Programmiersprache, die HTTP-Requests senden kann, ist kompatibel — von Python und Java über PHP bis hin zu Low-Code-Plattformen wie Make oder Zapier.

Swagger / API-Referenz

Die vollständige technische API-Dokumentation ist interaktiv über den Swagger-Bereich erreichbar — direkt im Browser, ohne externe Tools.

  • Vollständige Endpunkt-Übersicht: Alle verfügbaren API-Endpunkte mit Methoden, Pfaden und Beschreibungen.
  • Request- und Response-Schemas: Genaue Definitionen aller Ein- und Ausgabefelder, Datentypen und Pflichtfelder.
  • Interaktives Testen: Endpunkte direkt im Browser mit eigenem API-Key aufrufen.
  • Beispiel-Requests und -Responses: Konkrete Beispiele für typische Anwendungsfälle.
  • Fehlercodes: Dokumentation aller HTTP-Fehlercodes und deren Bedeutung.

Um den Swagger-Bereich zu nutzen, klicken Sie auf Authorize und tragen Sie Ihren X-API-KEY ein.

Swagger UI öffnen →