

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Einfache Rechner-API in API Gateway
<a name="simple-calc-lambda-api"></a>

Unsere einfache Rechner-API stellt drei Methoden (GET, POST, GET) zum Aufrufen der berei [Einfache Lambda-Rechnerfunktion](simple-calc-nodejs-lambda-function.md). Eine grafische Darstellung dieser API sieht wie folgt aus:

![\[Einfache Rechner-API für generiertes SDK\]](http://docs.aws.amazon.com/de_de/apigateway/latest/developerguide/images/simple-calc-api-console-hierarchy-new-console.png)


Diese drei Methoden zeigen verschiedene Methoden zur Bereitstellung der Eingabe für die Backend-Lambda-Funktion, um denselben Vorgang auszuführen: 
+ Die `GET /?a=...&b=...&op=...`-Methode verwendet die Abfrageparameter, um den Eingang anzugeben.
+ Die `POST /`-Methode verwendet die JSON-Nutzlast `{"a":"Number", "b":"Number", "op":"string"}`, um den Eingang anzugeben.
+ Die `GET /{a}/{b}/{op}`-Methode verwendet die Pfadparameter, um den Eingang anzugeben.

Ist keine Definition vorhanden, generiert API Gateway den entsprechenden SDK-Methodennamen durch eine Kombination der HTTP-Methode und den Pfadbestandteilen. Der Root-Pfadbestandteil (`/`) wird als `Api Root` bezeichnet. Beispiel: Der Standardname der Java-SDK-Methoden für die API-Methode von `GET /?a=...&b=...&op=...` lautet `getABOp`, der Standardname der SDK-Methode für `POST /` lautet `postApiRoot` und der Standardname der SDK-Methode für `GET /{a}/{b}/{op}` lautet `getABOp`. Der Einzelne SDKs kann die Konvention anpassen. Weitere Informationen finden Sie in der Dokumentation in der generierten SDK-Quelle für SDK-spezifische Methodennamen. 

Sie können, und sollten, die Standardnamen der SDK-Methode überschreiben, indem Sie die Eigenschaft [operationName](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html#operationName) für jede API-Methode angeben. Dies ist bei [Erstellung der API-Methode](https://docs.aws.amazon.com/apigateway/latest/api/API_PutMethod.html) oder der [Aktualisierung der API-Methode](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateMethod.html) mit der API Gateway-REST-API möglich. In der API-Swagger-Definition können Sie die `operationId` festlegen, um dasselbe Ergebnis zu erzielen.

Bevor wir zeigen, wie diese Methoden mit einem SDK aufgerufen werden, das von API Gateway für diese API generiert wurde, fassen wir die Einrichtung kurz zusammen. Detaillierte Anweisungen finden Sie unter [Entwickeln Sie REST APIs in API Gateway](rest-api-develop.md). Wenn API Gateway für Sie neu ist, lesen Sie zuerst [Wählen Sie ein AWS Lambda Integrations-Tutorial](getting-started-with-lambda-integration.md).

## Erstellen von Modellen für Eingaben und Ausgaben
<a name="simple-calc-lambda-api-create-models-for-input-and-output"></a>

Wir müssen ein `Input`-Modell für die API erstellen, um stark typisierte Eingaben im SDK anzugeben. Für die Beschreibung des Antworttextdatentyps erstellen wir ein `Output`-Modell und ein `Result`-Modell.

**Erstellen von Modellen für Eingabe, Ausgabe und Ergebnis**

1. Klicken Sie im Navigationsbereich auf **Models** (Modelle).

1. Wählen Sie **Modell erstellen** aus.

1. Geben Sie unter **Name** **input** ein.

1. Geben Sie für **Content type** (Inhaltstyp) **application/json** ein. 

   Wenn kein passender Inhaltstyp gefunden wird, wird die Anforderungsvalidierung nicht durchgeführt. Geben Sie **\$1default** ein, um das gleiche Modell unabhängig vom Inhaltstyp zu verwenden.

1. Geben Sie für **Modellschema** Folgendes ein:

   ```
   {
       "$schema" : "$schema": "http://json-schema.org/draft-04/schema#",
       "type":"object",
       "properties":{
           "a":{"type":"number"},
           "b":{"type":"number"},
           "op":{"type":"string"}
       },
       "title":"Input"
   }
   ```

1. Wählen Sie **Modell erstellen** aus.

1. Wiederholen Sie die folgenden Schritte, um jeweils ein `Output`- und ein `Result`-Modell zu erstellen.

   Geben Sie für das `Output`-Modell Folgendes für **Modellschema** ein:

   ```
   {
       "$schema": "http://json-schema.org/draft-04/schema#",
       "type": "object",
       "properties": {
           "c": {"type":"number"}
       },
       "title": "Output"
   }
   ```

   Geben Sie für das `Result`-Modell Folgendes für **Modellschema** ein: Ersetzen Sie die API-ID `abc123` durch Ihre API-ID.

   ```
   {
       "$schema": "http://json-schema.org/draft-04/schema#",
       "type":"object",
       "properties":{
           "input":{
               "$ref":"https://apigateway.amazonaws.com/restapis/abc123/models/Input"
           },
           "output":{
               "$ref":"https://apigateway.amazonaws.com/restapis/abc123/models/Output"
           }
       },
       "title":"Result"
   }
   ```

## Einrichten von GET-/Abfrageparameter-Methode
<a name="simple-calc-lambda-api-set-up-get-method-query-parameters"></a>

Bei der `GET /?a=..&b=..&op=..`-Methode werden die Abfrageparameter in **Method Request** angegeben:

**Einrichten der GET/URL-Abfragezeichenfolgenparameter**

1. Klicken Sie im Abschnitt **Methodenanforderung** für die `GET`-Methode in der Stamm-Ressource (`/`) auf **Bearbeiten**.

1. Wählen Sie **URL query string parameters** (URL-Abfragezeichenfolgen-Parameter) und gehen Sie wie folgt vor:

   1. Wählen Sie **Abfragezeichenfolge hinzufügen** aus.

   1. Geben Sie unter **Name** **a** ein.

   1. Lassen Sie die Optionen **Required** (Obligatorisch) and **Caching** (Cache) deaktiviert. 

   1. **Caching** bleibt ausgeschaltet.

   Wiederholen Sie die obigen Schritte und erstellen Sie eine Abfragezeichenfolge mit dem Namen **b** sowie eine Abfragezeichenfolge mit dem Namen **op**.

1. Wählen Sie **Speichern**.

## Einrichten eines Datenmodells für die Nutzlast als Eingabe für das Backend
<a name="simple-calc-lambda-api-set-up-post-method-body-data-type"></a>

Bei der `POST /`-Methode erstellen wir das `Input`-Modell und fügen Sie es der Methodenabfrage hinzu, um die Form der Eingabedaten zu definieren. 

**Einrichten des Datenmodells für die Nutzlast als Eingabe für das Backend**

1. Klicken Sie im Abschnitt **Methodenanforderung** für die `POST`-Methode in der Stamm-Ressource (`/`) auf **Bearbeiten**.

1. Klicken Sie auf **Anforderungstext**.

1. Wählen Sie **Add model** aus.

1. Geben Sie für **Content type** (Inhaltstyp) **application/json** ein.

1. Wählen Sie für **Modell** die Option **Eingabe** aus.

1. Wählen Sie **Speichern**.

Bei diesem Modell können Ihre API-Kunden das SDK aufrufen, um die Eingabe eines `Input`-Objekts zu instanziieren. Ohne dieses Modell müssten die Kunden ein Dictionary-Objekt erstellen, um die JSON-Eingabe in der Lambda-Funktion darzustellen. 

## Einrichten eines Datenmodells für die Ergebnisausgabe vom Backend
<a name="simple-calc-lambda-api-set-up-all-methods-result-data-type"></a>

Für alle drei Methoden erstellen wir das `Result`-Modell und fügen es zur `Method Response` der Methode hinzu, um die Form der Ausgabe zu definieren, die von der Lambda-Funktion zurückgegeben wird.

**Einrichten des Datenmodells für die Ergebnisausgabe aus dem Backend**

1. Wählen Sie die Ressource **/\$1a\$1/\$1b\$1/\$1op\$1** und dann die **GET**-Methode aus.

1. Klicken Sie auf der Registerkarte **Methodenantwort** unter **Antwort 200** auf **Bearbeiten**.

1. Klicken Sie unter **Anforderungstext** auf **Modell hinzufügen**.

1. Geben Sie für **Content type** (Inhaltstyp) **application/json** ein.

1. Wählen Sie für **Modell** die Option **Ergebnis** aus.

1. Wählen Sie **Speichern**.

Bei diesem Modell können Ihre API-Kunden eine erfolgreiche Ausgabe parsen, indem sie die Eigenschaften für ein `Result`-Objekt lesen. Ohne dieses Modell müssten die Kunden ein Dictionary-Objekt erstellen, um die JSON-Ausgabe darzustellen. 