Für verschiedene Zwecke benötige ich regelmäßig eindeutige IDs in verschiedenen Formaten. Ich habe dazu einen Webservice aufgesetzt, der über eine einfache API verschiedene IDs zurückgibt. Das erspart mir, diese ID-Generierung jedesmal wieder neu implementieren zu müssen. Außerdem kann ich so jederzeit von Automatisierungsplattformen (z.B. Zapier, Integromat) aus auf meine IDs zugreifen. Dienste dieser Art haben zusätzlich zu den normalen Integrationen auch immer eine “neutrale” HTTP-Funktion. Darüber kann man beliebige HTTP-Requests ausführen und das Ergebnis entgegennehmen.
Unterstützte ID-Formate
- numerisch (z.B.
378134
) - alphanumerisch (z.B.
jM9LK3
) - UUID (z.B.
f4b7a8d3-4edf-4a30-991b-ebf99f493c86
) - KSUID (z.B.
1msEhq2gU30WRD613L9X95xMAgd
)
Webservice und Endpunkte
Der Webservice hat die Adresse https://api.onetimecode.net. Es werden ausschließlich GET
-Requests entgegengenommen.
Das Ergebnis ist ein JSON-Objekt mit dem einzigen Schlüssel result
und der jeweiligen ID als Wert:
{"result":526766}
Folgende Endpunkte gibt es:
- /number
- /alphanumeric
- /uuid
- /ksuid
Wenn man anstatt einer JSON-Antwort eine reine Textantwort bekommen möchte (z.B. für die Integration in ein Shell-Skript), kann man an den Endpunkt die Endung .txt
anhängen:
- /number.txt
- /alphanumeric.txt
- /uuid.txt
- /ksuid.txt
Weitere Parameter
length
Die Endpunkte /number
und /alphanumeric
können optional den Query-Parameter length
haben. Die Standardlänge ist immer sechs Zeichen.
- /number?length=4
- /alphanumeric?length=16
min/max
Der Endpunkt /number
versteht optional auch die beiden Query-Parameter min
und max
. Sind diese Parameter gegeben, überschreiben diese einen ggf. übergebenen length
-Parameter. Die zurückgegebene Nummer ist dann eine im Bereich zwischen min
und max
.
- /number?min=100&max=200
withoutdashes
Der Endpunkt /uuid
versteht optional den Query-Parameter withoutdashes=true
. Die zurückgegebene UUID hat dann keine Bindestriche als Trennzeichen.