RESTful API¶
Bemerkung
Stellen Sie sicher, dass alle Anfragen per https
gestellt werden. Unverschlüsselte http
Anfragen werden abgewiesen.
hash¶
- POST /api/v1/hash¶
Fügt einen oder mehrere neue Einträge hinzu. Liefert die gespeicherte Zeit und, ob der Hash neu ist. Der Wert von invaliden Hashes ist „invalid Hash“. Falls bei der Anfrage kein valider Hash übergeben wurde, wird Fehlercode 422 zurück gegeben.
Die Einträge können sowohl als json im post body übergeben werden, als auch im „form-format“.
{ hash: [ "deadbeef6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e", "4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da" ] }
Beispiel Curl:
curl --user $API_KEY:unused https://notar.direct/api/v1/hash -d "hash=deadbeef6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e" -d "hash=4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da" -d "hash=not_a_hash"-X POST
Beispiel Python:
import requests from requests.auth import HTTPBasicAuth api_key = "your_API_key" hashes = ["deadbeef6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e", "4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da", "not_a_hash"] r = requests.post("https://notar.direct/api/v1/hash", auth=HTTPBasicAuth(api_key, ''), json={"hash": hashes}) assert(r.status_code == 201)
Beispiel JavaScript/jQuery:
function ajaxPost(uri, data) { var token = "Your_API_Key"; var request = { url: uri, type: "POST", contentType: "application/json", accepts: "application/json", cache: false, dataType: 'json', data: JSON.stringify(data), beforeSend: function(xhr) { xhr.setRequestHeader("Authorization", "Basic " + btoa(token+":x")); } }; return $.ajax(request); } var hashes = ["deadbeef6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e", "4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da", "not_a_hash"]; ajaxPost("https://notar.direct/api/v1/hash", hashes);
Response:
{ "deadbeef6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58": { "date": "2015-11-15T09:39:08", "new": false }, "4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da": { "date": "2015-11-15T09:33:12", "new": false } "not_a_hash": "invalid Hash" }
- Parameters
hash (string) – Hash der Datei
- Request Headers
Authorization – Anmeldedaten wie in Authentifizierung beschrieben
- Status Codes
401 Unauthorized – wenn die Authentifizierung fehlschlägt
422 Unprocessable Entity – wenn kein einziger valider Hash übertragen wurde
check¶
- GET /api/v1/check¶
Sucht den timestamp zu dem gegebenen
hash
, mehrere können gleichzeitig abgefragt werden.Beispiel Curl:
curl --user $API_KEY:unused https://notar.direct/api/v1/check -d "hash=4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da&hash=a99a315b6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e" -X GETBeispiel Python:
import requests from requests.auth import HTTPBasicAuth api_key = "Your_API_Key" hashes = [ "4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da", "a99a315b6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e" ] r = requests.get("https://notar.direct/api/v1/check", auth=HTTPBasicAuth(api_key, ''), params={"hash": hashes}) assert(r.status_code == 200)Response:
{ "4b6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da": "", "a99a315b6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e": "2015-12-24T08:43:39.855220+00:00" }Zurückgegeben wird ein JSON struct, jeden abgefragten
hash
enthält. Falls der abfragende User diesen gespeichert hat, wird das Datum der ersten Speicherung dazu ausgegeben, wenn er unbekannt fuer diesen User ist, wird ein leerer String ausgegeben.
- Parameters
hash (string) – der sha256 Hash der Datei, kann mehrfach angehängt werden, damit mehrere Hashes abgefragt werden
- Request Headers
Authorization – Anmeldedaten wie in Authentifizierung beschrieben
- Status Codes
200 OK – gibt die Daten als json wieder
401 Unauthorized – wenn die Authentifizierung fehlschlägt
token¶
- GET /api/v1/token¶
Liefert (nach erfolgreicher Authentifizierung) ein 10 Minuten gültiges Token, das zur Authentifizierung genutzt werden kann.
curl --user $API_KEY:unused https://notar.direct/api/v1/token -X GET
- Request Headers
Authorization – Anmeldedaten wie in Authentifizierung beschrieben
- Status Codes
200 OK – Token wurde erfolgreich erzeugt
401 Unauthorized – wenn die Authentifizierung fehlschlägt
404 Not Found – wenn diese Mandantenkennung nicht existiert
upload¶
- GET /api/v1/upload¶
Lädt eine oder mehrere Dateien hoch, die auf dem Server gespeichert werden.
curl --user $API_KEY:unused https://notar.direct/api/v1/upload F file1=@/path/to/file.pdf -F file2=@/path/to/second/file.png -X POST
- Request Headers
Authorization – Anmeldedaten wie in Authentifizierung beschrieben
- Status Codes
201 Created – Dateien wurden erfolgreich gespeichert
401 Unauthorized – wenn die Authentifizierung fehlschlägt
404 Not Found – wenn diese Mandantenkennung nicht existiert oder die Speicherung fehlschlägt