Direkt zum Inhalt

Wie verknüpfe ich ein Datenmodell mit meiner REST-API in API Gateway?

Lesedauer: 4 Minute
0

Ich möchte ein Datenmodell mit meiner REST-API in Amazon API Gateway verknüpfen.

Lösung

Um ein Datenmodell einer REST-API in API Gateway zuzuordnen, führe die folgenden Schritte aus.

Schreibe ein Modellschema, das du deiner REST-API zuordnest.

Hinweis: API-Gateway-Modelle müssen JSON-Schemaentwurf 4 verwenden. Informationen zum Schreiben eines Modellschemas findest du unter Datenmodelle für REST-APIs.

Beispiel-Modellschema

Dieses Beispielmodell verwendet application/json als Standardschlüssel zur Auswahl der Zuordnungsvorlage. Dein Schema muss die folgenden Bedingungen erfüllen:

  • API-Benutzer müssen ihre UserID- und Name-Werte im Anforderungstext übergeben.
  • Die Werte für UserID und Name müssen Zeichenfolgen sein.
  • Der Wert für Age muss eine Ganzzahl von 18 oder größer sein.
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "User",
  "type": "object",
  "properties": {
    "UserID": {
      "type": "string"
    },
    "Name": {
      "type": "string"
    },
    "Age": {
      "description": "Age in years",
      "type": "integer",
      "minimum": 18
    }
  },
  "required": [
    "UserID",
    "Name"
  ]
}

Modell für deine REST-API erstellen

Informationen zum Erstellen eines Modells in API Gateway findest du unter Grundlegende Anforderungsvalidierung in API Gateway einrichten.

Modell mit der API-Methode zuordnen

Führe die folgenden Schritte aus:

  1. Öffne deine API in der API-Gateway-Konsole.
  2. Wähle im Navigationsbereich Ressourcen aus.
  3. Wähle die API-Methode aus, der du das Modell zuordnen möchtest.
  4. Wähle im Bereich Methodenausführung die Option Methodenanfrage aus.
  5. Wähle unter Anforderungsvalidierung die Option Text validieren aus. Wähle dann das Häkchensymbol aus, um deine Auswahl zu speichern.
  6. Erweitere die Option Anforderungstext. Wähle dann Modell hinzufügen aus.
  7. Gib unter Inhaltstyp den Inhaltstyp deines Modells ein. Gib zum Beispiel application/json ein.
  8. Wähle unter Modellname das Modell aus, das du erstellt hast.
  9. Wähle das Häkchensymbol aus, um deine Auswahl zu speichern.

Modell testen

Führe die folgenden Schritte aus:

  1. Wähle in der Ressourcenliste deiner API die API-Methode aus, der du dein Modell zugeordnet hast.

  2. Wähle im Bereich Methodenausführung die Option TESTEN aus.

  3. Gib unter Anforderungstext einen Anforderungstext ein, der dem von dir erstellten Modellschema entspricht.
    Hinweis: Um das application/json-Beispielmodell zu testen, verwende den folgenden Beispiel-Anforderungstext:

    { "UserID": "abc123", "Name": "Ana", "Age": 21}
  4. Wähle Testen.

  5. Wenn die Testantwort erfolgreich ist, entspricht der zurückgegebene Anforderungstext dem Modellschema.

(Optional) Zuordnungsvorlage für das Modell erstellen

Du kannst eine Zuordnungsvorlage verwenden, um Anforderungen zu ändern, die an das integrierte Backend deiner API gesendet werden. Um eine Zuordnungsvorlage zu erstellen, führe die folgenden Schritte aus:

  1. Wähle in der Ressourcenliste deiner API die API-Methode aus, der du dein Modell zugeordnet hast.

  2. Wähle im Bereich Methodenausführung die Option Integrationsanforderung aus.

  3. Erweitere dann Mapping-Vorlagen.

  4. Wähle für Pass-Through des Anforderungstexts die Option Wenn keine Vorlagen definiert sind (empfohlen) aus.

  5. Wähle Mapping-Vorlage hinzufügen.

  6. Gib unter Content-Type den Inhaltstyp deines Modells ein. Gib zum Beispiel application/json ein.

  7. Wähle das Häkchensymbol aus, um deine Auswahl zu speichern.

  8. Wähle unter Vorlage generieren das Modell aus, das du erstellt hast. Zum Beispiel erscheint das application/json-Beispielmodell wie folgt:

    #set($inputRoot = $input.path('$')) { "UserID" : "$inputRoot.UserID", "Name" : "$inputRoot.Name", "Age" : $inputRoot.Age }
  9. Ändere die oben stehende Vorlage so, dass sie die Werte enthält, die du an das integrierte Backend deiner API übergeben möchtest.

  10. Wähle Speichern aus.

Stelle deine REST-API bereit, um die Änderungen zu übernehmen

Führe die folgenden Schritte aus:

  1. Wähle im Navigationsbereich Ressourcen aus.
  2. Wähle Aktionen aus. Wähle dann API bereitstellen aus.
  3. Wähle unter Bereitstellungsphase eine bereits vorhandene Phase aus oder wähle [New Stage] aus, um eine Phase zu erstellen.
    Wichtig: Wenn du eine neue Phase erstellst, musst du einen Namen für Phasenname eingeben.
  4. Wähle Bereitstellen aus, um die Aufruf-URL zu erhalten, die du verwendest, um Anforderungen an deine bereitgestellte API zu senden.
  5. Kopiere die Aufruf-URL.

REST-API testen

Sende eine Testanforderung an deine API, die die Methode und den Inhaltstyp verwendet, die deinem Modell zugeordnet sind. Eine erfolgreiche Anfrage gibt eine 200 OK-Antwort zurück. Eine nicht erfolgreiche Anforderung gibt einen Statuscode 400 zurück.

Um eine Testanforderung zu senden, verwende entweder ein API-Entwicklungs-Tool oder einen curl-Befehl. Weitere Informationen zu REST-API-Aufrufen in API Gateway findest du unter REST-APIs in API Gateway aufrufen. Weitere Informationen zum curl-Befehl findest du auf der curl-Website.

Beispiel-curl-Befehl, der die POST-HTTP-Methode verwendet und auf eine 200 OK-Antwort testet

Hinweis: Dieser Beispielbefehl sendet eine Testanforderung an das application/json -Beispielmodell. Der Befehl gibt eine 200 OK-Antwort zurück.

curl -X POST <API URL> -H 'Content-Type: application/json' -d '{ "UserID": "abc123", "Name": "Ana", "Age": 21 }'

(Optional) Beispiel-curl-Befehl, der die POST-HTTP-Methode verwendet und auf einen Statuscode 400 testet

Hinweis: Der Anforderungstext in diesem Beispielbefehl ist ungültig, da er das erforderliche Modellattribut UserID nicht enthält. Der Befehl gibt einen Statuscode 400 zurück.

curl -X POST <API URL> -H 'Content-Type: application/json' -d '{ "Name": "Ana", "Age": 21 }'