Asynchrone HTTP-Schnittstelle
Die asynchrone HTTP-Schnittstelle des IBM Watson® Speech to Text-Service bietet Methoden, mit denen Audiodaten über nicht blockierende Aufrufe des Service transkribiert werden können. Die Schnittstelle stellt durch den Einsatz von benutzerdefinierten geheimen Zeichenfolgen und digitalen Signaturen eine Sicherheitsstufe für Anforderungen bereit, die über das HTTP-Protokoll erfolgen. Für die Verwendung der asynchronen Schnittstelle haben Sie zwei Möglichkeiten.
- Registrieren Sie eine Callback-URL, damit Sie vom Service automatisch über den Jobstatus und die Ergebnisse benachrichtigt werden.
- Fragen Sie den Service ab, um den Jobstatus und die Ergebnisse manuell abzurufen.
Die beiden Methoden schließen sich nicht gegenseitig aus. Sie können sich für den Empfang von Callback-Benachrichtigungen entscheiden und trotzdem den neuesten Status vom Service abfragen oder Ergebnisse manuell vom Service abrufen. In den folgenden Abschnitten ist beschrieben, wie Sie die asynchrone HTTP-Schnittstelle bei beiden Methoden verwenden.
Übergeben Sie mit einer einzelnen Anforderung mindestens 100 Byte und höchstens 1 GB Audiodaten. Informationen zu Audioformaten und zur Verwendung der Komprimierung, um das Volumen der in einer Anforderung gesendeten Audiodaten zu maximieren, finden Sie in Unterstützte Audioformate. Weitere Informationen zu den einzelnen Methoden der Schnittstelle finden Sie in der API & SDK-Referenz.
Die asynchrone HTTP-Schnittstelle bietet keine Unterstützung für mehrteilige Spracherkennung. Nur die synchrone HTTP-Schnittstelle kann für mehrteilige Anforderungen verwendet werden. Weitere Informationen finden Sie unter Mehrteilige HTTP-Spracherkennungsanforderung erstellen.
Verwendungsmodelle
Bei der Arbeit mit der asynchronen HTTP-Schnittstelle des Service haben Sie die folgenden Möglichkeiten, um sich über den Jobstatus zu informieren und Ergebnisse zu empfangen:
- Verwendung von Callback-Benachrichtigungen:
- Rufen Sie die Methode
POST /v1/register_callbackauf, um eine Callback-URL beim Service zu registrieren. Sie können optional eine benutzerdefinierte geheime Zeichenfolge bereitstellen, um die Authentifizierung und die Datenintegrität für Callbacks zu aktivieren, die an die URL gesendet werden. - Rufen Sie die Methode
POST /v1/recognitionsmit einer bereits registrierten Callback-URL auf, an die der Service Benachrichtigungen sendet, wenn sich der Status des Jobs ändert. Sie geben eine Liste der Ereignisse an, über die Sie benachrichtigt werden wollen. Standardmäßig sendet der Service Benachrichtigungen, wenn ein Job gestartet wird, wenn ein Job abgeschlossen ist und wenn ein Fehler auftritt. Sie können anfordern, dass in der Abschlussbenachrichtigung auch die Ergebnisse der Anforderung gesendet werden. Andernfalls müssen Sie die Ergebnisse mit der MethodeGET /v1/recognitions/{id}abrufen.
- Rufen Sie die Methode
- Abfrage des Service:
- Rufen Sie die Methode
POST /v1/recognitionsohne Callback-URL, Ereignisse oder Benutzertoken auf. - Rufen Sie in regelmäßigen Abständen die Methode
GET /v1/recognitionsauf, um den Status der neuesten Jobs zu überprüfen, oder rufen Sie die MethodeGET /v1/recognitions/{id}auf, um den Status eines bestimmten Jobs zu überprüfen. - Falls Sie den Jobstatus mit der Methode
GET /v1/recognitionsüberprüfen, rufen Sie die MethodeGET /v1/recognitions/{id}auf, um nach Abschluss des Jobs die Ergebnisse abzurufen.
- Rufen Sie die Methode
Die beiden Verfahren können kombiniert verwendet werden. Für einen Job, der mit einer Callback-URL erstellt wurde, können Sie trotzdem den neuesten Status beim Service abfragen. Es kann beispielsweise vorkommen, dass Sie den Status eines Jobs abrufen wollen, wenn Benachrichtigungen erst nach einer Weile eintreffen. Eine Überprüfung des Status kann außerdem sinnvoll sein, wenn Sie vermuten, dass Sie aufgrund eines Service- oder Netzfehlers eine oder mehrere Benachrichtigungen nicht erhalten haben.
Callback-URL registrieren
Zum Registrieren einer Callback-URL rufen Sie die Methode POST /v1/register_callback auf. Sobald Sie eine Callback-URL registriert haben, können Sie sie für den Empfang von Benachrichtigungen über eine unbegrenzte Anzahl von Jobs
verwenden. Der Registrierungsprozess umfasst vier Schritte:
-
Rufen Sie die Methode
POST /v1/register_callbackauf und übergeben Sie eine Callback-URL. Optional können Sie auch einen benutzerdefinierten geheimen Schlüssel angeben. Der Dienst verwendet das Geheimnis zur Berechnung von Secure Hash Algorithm ( SHA-256 ) Signaturen zur Authentifizierung und Datenintegrität. Im folgenden Beispiel wird ein Callback für einen Benutzer registriert, der an der URLhttp://{user_callback_path}/resultsantwortet. Der Aufruf enthält den geheimen BenutzerschlüsselThisIsMySecret.IBM Cloud
curl -X POST -u "apikey:{apikey}" \ "{url}/v1/register_callback?callback_url=http://{user_callback_path}/results&user_secret=ThisIsMySecret"IBM Cloud Pak for Data IBM Software Hub
curl -X POST \ --header "Authorization: Bearer {token}" \ "{url}/v1/register_callback?callback_url=http://{user_callback_path}/results&user_secret=ThisIsMySecret" -
Der Service versucht, die Callback-URL zu validieren (oder der Zulassungsliste zuzuordnen), falls diese noch nicht registriert wurde. Hierzu sendet er eine Anforderung
GETan die Callback-URL. Der Service übergibt eine zufällige alphanumerische Abfragezeichenfolge über den Abfrageparameterchallenge_stringder Anforderung. Die Anforderung enthält einen HeaderAccept, dertext/plainals erforderlichen Antworttyp angibt.Wenn der Aufruf der Methode
register_callbackein Benutzergeheimnis enthielt, enthält dieGET-Anfrage des Dienstes auch einenX-Callback-Signature-Header, der die HMAC-SHA256-Signatur des Challenge-Strings angibt. Der Service berechnet die Signatur und verwendet hierzu den geheimen Benutzerschlüssel als Schlüssel.GET http://{user_callback_path}/results?challenge_string=n9ArPGMQ36Hiu7QC header: X-Callback-Signature {HMAC-SHA256_signature} -
Sie antworten auf die Anforderung
GETaus dem Service mit dem Statuscode 200. Beziehen Sie die vom Service gesendete Abfragezeichenfolge in die Antwort ein. Nehmen Sie die Zeichenfolge als unverschlüsselten Text in den Hauptteil der Antwort auf und legen Sie für den AntwortheaderContent-Typeden Werttext/plainfest.Wenn die ursprüngliche
POSTAnfrage ein Benutzergeheimnis enthielt, können Sie eine HMAC-SHA256 Signatur der Abfragezeichenfolge berechnen, indem Sie das Geheimnis als Schlüssel verwenden. Sofern die AnforderungGETdurch den Service gesendet wurde, stimmt die Signatur mit dem Wert überein, der im HeaderX-Callback-Signatureangegeben ist.response code: 200 OK body: n9ArPGMQ36Hiu7QC -
Der Service überprüft, ob die Abfragezeichenfolge im Hauptteil der Antwort auf seine Anforderung
GETzurückgegeben wurde. Ist dies der Fall, listet der Service die Callback-URL in der Zulassungsliste auf und antwortet auf Ihre ursprüngliche AnforderungPOSTmit dem Statuscode 201. Der Hauptteil der Antwort enthält ein JSON-Objekt mit einem Feldstatus, das den Wertcreatedhat, und einem Feldurl, das den Wert Ihrer Callback-URL enthält.response code: 201 Created body: { "status": "created", "url": "http://{user_callback_path}/results" }
Der Service sendet während des Registrierungsprozesses nur eine einzige Anforderung GET an eine Callback-URL. Der Service muss innerhalb von 5 Sekunden eine Antwort mit dem Antwortcode 200 empfangen, deren Hauptteil die Abfragezeichenfolge
enthält. Andernfalls wird die URL nicht in die Zulassungsliste aufgenommen, sondern stattdessen als Antwort auf die Anforderung POST /v1/register_callback der Statuscode 400 gesendet. Falls die Callback-URL bereits erfolgreich
in die Zulassungsliste aufgenommen wurde, sendet der Service als Antwort auf die ursprüngliche Anforderung POST den Statuscode 200.
Sicherheitsaspekte
Wenn Sie eine Callback-URL mit der Methode POST /v1/register_callback erfolgreich registriert haben, nimmt der Service die URL in die Zulassungsliste auf und macht dadurch kenntlich, dass die URL zur Verwendung bei Callback-Benachrichtigung
verifiziert ist. Falls Sie mit dem Registrierungsaufruf einen geheimen Benutzerschlüssel angeben, bedeutet die Aufnahme in die Zulassungsliste außerdem, dass die URL für die erweiterte Sicherheit validiert wurde. Die Angabe eines geheimen
Benutzerschlüssels bietet Authentifizierung und Datenintegrität für Anforderungen, die die Callback-URL in Verbindung mit der asynchronen HTTP-Schnittstelle verwenden.
Der Dienst verwendet das Benutzergeheimnis, um eine HMAC-SHA256 Signatur über die Nutzdaten jeder Rückrufbenachrichtigung zu berechnen, die er an die URL sendet. Der Service sendet die Signatur zusammen mit jeder Benachrichtigung im Header
X-Callback-Signature. Der Client kann mithilfe des geheimen Schlüssels seine eigene Signatur für die Nutzdaten jeder Benachrichtigung berechnen. Falls seine Signatur mit dem Wert des Headers X-Callback-Signature übereinstimmt, weiß der Client, dass die Benachrichtigung durch den Service gesendet und ihr Inhalt während der Übertragung nicht geändert wurde. Dieses Wissen garantiert, dass der Client nicht Opfer eines Angriffs geworden ist, der als
'Man-in-the-Middle' (MITM) oder 'Janus-Angriff' bezeichnet wird.
HTTPS ist für Produktionsanwendungen die ideale Lösung. Während der Anwendungsentwicklung und Prototyperstellung können die vom Service unterstützten HTTP-basierten Callback-Benachrichtigungen jedoch den Entwicklungsprozess vereinfachen und beschleunigen, weil der mit HTTPS verbundene Aufwand vermieden wird.
Registrierung einer Callback-URL zurücknehmen
Sie können die Registrierung einer Callback-URL, die in der Zulassungsliste aufgeführt ist, jederzeit mit der Methode POST /v1/unregister_callback aufheben. Das Aufheben der Registrierung einer Callback-URL kann nützlich sein,
wenn Sie Ihre Anwendung mit dem Service testen. Nachdem Sie die Registrierung einer Callback-URL aufgehoben haben, können Sie die URL nicht mehr bei asynchronen Erkennungsanforderungen verwenden.
Beispiel für das Aufheben der Registrierung einer Callback-URL
Im folgenden Beispiel wird die Registrierung einer zuvor registrierten Callback-URL aufgehoben:
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
"{url}/v1/unregister_callback?callback_url=http://{user_callback_path}/results"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \
--header "Authorization: Bearer {token}" \
"{url}/v1/unregister_callback?callback_url=http://{user_callback_path}/results"
Job erstellen
Zum Erstellen eines Erkennungsjobs rufen Sie die Methode POST /v1/recognitions auf. Auf welche Weise Sie den Status des Jobs und die Ergebnisse erfahren, variiert abhängig von der verwendeten Strategie und den übergebenen Parametern:
- Zur Verwendung von Callback-Benachrichtigungen beziehen Sie den Abfrageparameter
callback_urlein und geben Sie eine URL an, an die der Service Callback-Benachrichtigungen senden soll, sobald sich der Status des Jobs ändert. Sie können außerdem die folgenden optionalen Abfrageparameter angeben:- Geben Sie den Parameter
eventsein, um eine Liste von Benachrichtigungsereignissen zu abonnieren. Standardmäßig sendet der Service Callback-Benachrichtigungen, wenn der Job gestartet wird (Ereignisrecognitions.started), wenn der Job abgeschlossen ist (Ereignisrecognitions.completed) und falls ein Fehler auftritt (Ereignisrecognitions.failed). Sie können eine Teilmenge der Ereignisse angeben oder das Ereignisrecognitions.completed_with_resultsanstelle des Ereignissesrecognitions.completedverwenden, damit die Ergebnisse zusammen mit der Benachrichtigung über den Jobabschluss gesendet werden. - Geben Sie mit dem Parameter
user_tokeneine Zeichenfolge an, die in jeder Benachrichtigung über den Job enthalten sein soll. Da Sie dieselbe Callback-URL bei einer unbegrenzten Anzahl von Jobs verwenden können, ermöglicht die Verwendung von Benutzertokens eine Unterscheidung zwischen den Benachrichtigungen für verschiedene Jobs.
- Geben Sie den Parameter
- Zur Verwendung von Abfragen lassen Sie die Abfrageparameter
callback_url,eventsunduser_tokenweg. Anschließend müssen Sie die MethodenGET /v1/recognitionsoderGET /v1/recognitions/{id}verwenden, um den Status des Jobs zu überprüfen; mit der zweiten Methode werden die Ergebnisse nach dem Abschluss eines Jobs abgerufen.
In beiden Fällen können Sie durch das Hinzufügen des Abfrageparameters results_ttl angeben, wie viele Minuten die Ergebnisse nach dem Abschluss des Jobs verfügbar bleiben sollen. Eigner des neuen Jobs ist die Serviceinstanz, deren
Berechtigungsnachweise beim Erstellen des Jobs verwendet wurden.
Neben den obigen Parametern, die speziell für die asynchrone Schnittstelle gelten, unterstützt die Methode POST /v1/recognitions einen Großteil derselben Parameter wie die WebSocket-Schnittstelle oder die synchrone HTTP-Schnittstelle.
Weitere Informationen enthält der Abschnitt Parameterübersicht.
Callback-Benachrichtigungen
Falls der Job mit einer Callback-URL erstellt wird, sendet der Service eine HTTP-Callback-Benachrichtigung POST an die registrierte URL, sobald ein bestimmtes Ereignis auftritt. Der Hauptteil einer Basisbenachrichtigung besteht
aus einem JSON-Objekt mit der folgenden Struktur:
{
"id": "{job_id}",
"event": "{recognitions_status}",
"user_token": "{user_token}"
}
Das Feld id gibt die ID des Jobs an, der den Callback generiert hat, und das Feld event gibt das Ereignis an, das den Callback ausgelöst hat. Das Feld user_token enthält das Benutzertoken für den Job,
sofern ein Token angegeben wurde. Andernfalls besteht der Inhalt dieses Feldes aus einer leeren Zeichenfolge. Beim Ereignis recognitions.completed_with_results enthält das Objekt ein Feld results, in dem die Ergebnisse
der Erkennungsanforderung zur Verfügung gestellt werden. Der Client kann auf die Callback-Benachrichtigung mit dem Statuscode 200 antworten.
Falls zusammen mit der Callback-URL ein geheimer Benutzerschlüssel registriert wurde, sendet der Service mit der Callback-Benachrichtigung außerdem den Header X-Callback-Signature. Der Header gibt die HMAC-SHA256 Signatur des
Body der Anfrage an. Der Service berechnet die Signatur und verwendet hierzu den geheimen Benutzerschlüssel als Schlüssel. Der Client kann die Signatur für die Nutzdaten der Callback-Benachrichtigung berechnen und auf diese Weise sicherstellen,
dass sie mit der Signatur im Header übereinstimmt. Der folgende einfache Python-Code berechnet beispielsweise die Signatur für die Zeichenfolge notification_payload:
import hmac
import base64
from hashlib import sha256
# 'user_secret' and 'notification_payload' must be bytes
hashed = hmac.new(user_secret, notification_payload, sha256)
signature = base64.b64encode(hashed.digest()).decode().rstrip('\n')
Beispiel für das Erstellen eines Jobs mit einer Callback-URL
Im folgenden Beispiel wird ein Job erstellt, der der Callback-URL http://{user_callback_path}/results zugeordnet ist, die zuvor in die Zulassungsliste aufgenommen wurde. Im Beispiel wird der Job in den Callback-Benachrichtigungen,
die vom Service gesendet werden, durch das Benutzertoken job25 gekennzeichnet. Der Aufruf verwendet die Standardereignisse; der Benutzer muss daher die Methode GET /v1/recognitions/{id} aufrufen, um die Ergebnisse
abzurufen, wenn der Service eine Callback-Benachrichtigung über den Abschluss des Jobs sendet. Der Aufruf legt für den Abfrageparameter timestamps der Erkennungsanforderung die Einstellung true fest.
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file.flac \
"{url}/v1/recognitions?callback_url=http://{user_callback_path}/results&user_token=job25×tamps=true"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file.flac \
"{url}/v1/recognitions?callback_url=http://{user_callback_path}/results&user_token=job25×tamps=true"
Der Service gibt den Status der Anforderung zurück. Er lautet waiting und gibt an, dass der Service den Job für die Verarbeitung vorbereitet. Die Antwort enthält die Erstellungszeit, die Job-ID und die URL, über die weitere Informationen
zum Job abgerufen werden können.
{
"created": "2016-08-17T19:15:17.926Z",
"id": "4bd734c0-e575-21f3-de03-f932aa0468a0",
"url": "{url}/v1/recognitions/4bd734c0-e575-21f3-de03-f932aa0468a0",
"status": "waiting"
}
Beispiel für das Erstellen eines Jobs mit Abfrage
Im folgenden Beispiel wird ein Job erstellt, dem keine Callback-URL zugeordnet ist. Der Benutzer muss den Service abfragen, um sich über den Abschluss des Jobs zu informieren, und anschließend die Ergebnisse mit der Methode GET /v1/recognitions/{id} abrufen. Wie beim vorherigen Beispiel legt der Aufruf für den Parameter timestamps der Erkennungsanforderung den Wert true fest.
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/wav" \
--data-binary @{path}audio-file.wav \
"{url}/v1/recognitions?timestamps=true"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/wav" \
--data-binary @{path}audio-file.wav \
"{url}/v1/recognitions?timestamps=true"
Der Service gibt den Status processing zurück, um kenntlich zu machen, dass er den Job bereits verarbeitet. Außerdem gibt er die Erstellungszeit, die Job-ID und die URL für den Abruf von Informationen zum Job zurück.
{
"created": "2016-08-17T19:13:23.622Z",
"id": "4bb1dca0-f6b1-11e5-80bc-71fb7b058b20",
"url": "{url}/v1/recognitions/4bb1dca0-f6b1-11e5-80bc-71fb7b058b20",
"status": "processing"
}
Status eines Jobs überprüfen und Jobergebnisse abrufen
Durch einen Aufruf der Methode GET /v1/recognitions/{id} überprüfen Sie den Status des Jobs, der durch den Pfadparameter id angegeben wird. Die Antwort enthält immer die ID und den Status des Jobs sowie dessen Erstellungs-
und Aktualisierungszeit. Falls der Status completed (= abgeschlossen) lautet, enthält die Antwort auch die Ergebnisse der Erkennungsanforderung.
In den folgenden Fällen ist die Methode GET /v1/recognitions/{id} die einzige Möglichkeit zum Abrufen von Jobergebnissen:
- Der Job wurde ohne Callback-URL übergeben.
- Der Job wurde mit einer Callback-URL, jedoch ohne Angabe des Ereignisses
recognitions.completed_with_resultsübergeben. - Der Job ist keiner der 100 letzten ausstehenden Jobs. Wenn Sie den Pfadparameter
idweglassen, werden nur die 100 letzten Jobs zurückgegeben.
Mit der Methode können Sie jedoch immer auch die Ergebnisse für einen Job abrufen, der eine Callback-URL und das Ereignis recognitions.completed_with_results angegeben hat. Sie können die Ergebnisse für einen beliebigen Job so häufig
wie gewünscht abrufen, während die Ergebnisse verfügbar bleiben. Ein Job und seine Ergebnisse bleiben verfügbar, bis Sie sie mit der Methode DELETE /v1/recognitions/{id} löschen oder bis die Lebensdauer des Jobs abläuft (je nachdem,
was zuerst eintritt). Standardmäßig verfallen Ergebnisse nach einer Woche, sofern Sie mit dem Parameter results_ttl der Methode POST /v1/recognitions keine andere Lebensdauer angegeben haben.
Beispiel für eine Jobstatusüberprüfung ohne Ergebnisse
Im folgenden Beispiel wird der Status des Jobs mit der angegebenen ID überprüft:
IBM Cloud
curl -X GET -u "apikey:{apikey}" \
"{url}/v1/recognitions/{job_id}"
IBM Cloud Pak for Data IBM Software Hub
curl -X GET \
--header "Authorization: Bearer {token}" \
"{url}/v1/recognitions/{job_id}"
Der Job ist noch nicht abgeschlossen, so dass die Antwort die Ergebnisse nicht enthält.
{
"id": "4bb1dca0-f6b1-11e5-80bc-71fb7b058b20",
"created": "2016-08-17T19:13:23.622Z",
"updated": "2016-08-17T19:13:24.434Z",
"status": "processing"
}
Beispiel für eine Jobstatusüberprüfung mit Ergebnissen
Im folgenden Beispiel wird der Status des Jobs mit der angegebenen ID angefordert:
IBM Cloud
curl -X GET -u "apikey:{apikey}" \
"{url}/v1/recognitions/{job_id}"
IBM Cloud Pak for Data IBM Software Hub
curl -X GET \
--header "Authorization: Bearer {token}" \
"{url}/v1/recognitions/{job_id}"
Der Job ist abgeschlossen, so dass die Antwort die Ergebnisse der Anforderung enthält.
{
"id": "398fcd80-330a-22ba-93ce-1a73f454dd98",
"results": [
{
"result_index": 0,
"results": [
{
"final": true,
"alternatives": [
{
"transcript": "several tornadoes touch down as a line of severe thunderstorms swept through Colorado on Sunday ",
"timestamps": [
[
"several",
1,
1.52
],
[
"tornadoes",
1.52,
2.15
],
. . .
[
"Sunday",
5.74,
6.33
]
],
"confidence": 0.96
}
]
}
]
}
],
"created": "2016-08-17T19:11:04.298Z",
"updated": "2016-08-17T19:11:16.003Z",
"status": "completed"
}
Status der letzten Jobs überprüfen
Durch einen Aufruf der Methode GET /v1/recognitions können Sie den Status der letzten Jobs überprüfen. Die Methode gibt den Status der letzten 100 ausstehenden Jobs zurück, die den Berechtigungsnachweisen zugeordnet sind, mit denen
die Methode aufgerufen wird. Die Methode gibt die ID und den Status jedes Jobs zusammen mit seiner Erstellungs- und Aktualisierungszeit zurück. Wenn ein Job mit einer Callback-URL und einem Benutzertoken erstellt wurde, gibt die Methode auch
das Benutzertoken für den Job zurück.
Die Antwort enthält einen der folgenden Status:
waiting: Der Service bereitet den Job für die Verarbeitung vor. Dieser Status ist der Anfangsstatus aller Jobs. Der Job bleibt in diesem Status, bis der Service über die Kapazität für den Beginn der Verarbeitung verfügt.processing: Der Service verarbeitet den Job aktiv.completed: Der Service hat die Verarbeitung des Jobs fertiggestellt. Falls der Job eine Callback-URL und das Ereignisrecognitions.completed_with_resultsangegeben hat, sendet der Service zusammen mit der Callback-Benachrichtigung die Ergebnisse. Andernfalls müssen Sie die Ergebnisse mit der MethodeGET /v1/recognitions/{id}abrufen.failed: Der Job ist aus einem nicht genauer bezeichneten Grund fehlgeschlagen.
Ein Job und seine Ergebnisse bleiben verfügbar, bis Sie sie mit der Methode DELETE /v1/recognitions/{id} löschen oder bis die Lebensdauer des Jobs abläuft (je nachdem, was zuerst eintritt).
Beispiel für die Jobstatusüberprüfung des jüngsten Jobs
Im folgenden Beispiel wird der Status der jüngsten aktuellen Jobs angefordert, die den Berechtigungsnachweisen des Aufrufenden zugeordnet sind:
IBM Cloud
curl -X GET -u "apikey:{apikey}" \
"{url}/v1/recognitions"
IBM Cloud Pak for Data IBM Software Hub
curl -X GET \
--header "Authorization: Bearer {token}" \
"{url}/v1/recognitions"
Für den Benutzer gibt es drei ausstehende Jobs mit verschiedenen Statuswerten. Der erste Job wurde mit einer Callback-URL und einem Benutzertoken erstellt.
{
"recognitions": [
{
"id": "4bd734c0-e575-21f3-de03-f932aa0468a0",
"created": "2016-08-17T19:15:17.926Z",
"updated": "2016-08-17T19:15:17.926Z",
"status": "waiting",
"user_token": "job25"
},
{
"id": "4bb1dca0-f6b1-11e5-80bc-71fb7b058b20",
"created": "2016-08-17T19:13:23.622Z",
"updated": "2016-08-17T19:13:24.434Z",
"status": "processing"
},
{
"id": "398fcd80-330a-22ba-93ce-1a73f454dd98",
"created": "2016-08-17T19:11:04.298Z",
"updated": "2016-08-17T19:11:16.003Z",
"status": "completed"
}
]
}
Job löschen
Mit der Methode DELETE /v1/recognitions/{id} können Sie den Job löschen, der im Pfadparameter id angegeben ist. Normalerweise löschen Sie einen Job, nachdem Sie seine Ergebnisse aus dem Service abgerufen haben. Sobald
Sie einen Job gelöscht haben, sind seine Ergebnisse nicht mehr verfügbar. Ein Job, den der Service aktiv verarbeitet, kann nicht gelöscht werden.
Standardmäßig bewahrt der Service die Ergebnisse jedes Jobs auf, bis die Lebensdauer des Jobs abläuft. Die Standardlebensdauer beträgt eine Woche. Mit dem Parameter results_ttl der Methode POST /v1/recognitions können
Sie jedoch angeben, wie viele Minuten der Service die Ergebnisse aufbewahren soll.
Beispiel für das Löschen eines Jobs
Im folgenden Beispiel wird der Job mit der angegebenen ID gelöscht:
IBM Cloud
curl -X DELETE -u "apikey:{apikey}" \
"{url}/v1/recognitions/{job_id}"
IBM Cloud Pak for Data IBM Software Hub
curl -X DELETE \
--header "Authorization: Bearer {token}" \
"{url}/v1/recognitions/{job_id}"