# Verbindungen

## Wofür dienen Verbindungen?&#x20;

Schnittstellen verwenden normalerweise eine Authentifizierung/Autorisierung meist mittels API-Keys, um den Zugriff auf ihre Endpunkte einzuschränken. Es wird also eine Art "Health-Check" zur Überprüfung der Erreichbarkeit und Verifizierung des Endpunktes und des API-Keys eingerichtet.

Jedes Modul benötigt für die Aktivierung eine Verbindung, die eine Antwort mit dem HTTP-Status zwischen 200 und 299 zurückgibt, damit eine erfolgreiche Abfrage gewährleistet wird. Mehere Module können auch die gleiche Verbindung verwendet, wenn z.B. der gleiche API-Key verwendet wird.&#x20;

Um dies zu ermöglichen muss für jede Verbindung ein HTTP-Abfrage mit den entsprechenden Parametern erstellt werden.

## Erstellung HTTP-Abfrage

<figure><img src="https://1689456522-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPuklMpEkV7SuzvbOxCsR%2Fuploads%2F0VY4oGsWgvwnaMtCXAiA%2Fimage.png?alt=media&#x26;token=5bdc6819-bed8-4890-b154-7566b314a154" alt=""><figcaption><p>HTTP-Abfrage der Verbindung</p></figcaption></figure>

### Erklärung Bestandteile HTTP-Abfrage

Bei der HTTP-Abfrage wird eine vollständige Anfrage an den gewünschten Endpunkt in JSON-Form erstellt.&#x20;

* `url`:  Erweiterung der [Basis-URL](https://docs.chatcaptain.com/bot-verwalten/app-marktplatz/app-erstellung-und-struktur/basisdaten) um den gewünschten Endpunkt
* `headers`: &#x20;
  * `Content-Type`: Festlegung auf JSON-Format des Anforderungs-Headers und der Antwort
  * meist wird hier noch für die Autorisierung "`authorization"` ein Token oder API-Key mit dem  Platzhalter `{{parameters.apiKey}}`&#x20;
* `method`: Methode des Aufrufes (GET)

### Beispiel - HTTP-Abfrage

{% code fullWidth="false" %}

```svg
{
  "url": "{{baseUrl}}/random",
  "method": "GET",
  "headers": {
    "Content-Type": "application/json"
  }
}
```

{% endcode %}

## Festlegen der Parameter

Basierend auf diesen Parametern wird die Verbindung eingerichtet. Für die Aktivierung der Verbindung müssen in der App-Ansicht die Parameter ausgefüllt werden. Nach erfolgreichem Ausfüllen wird die HTTP-Abfrage mit diesen Parameter ausgeführt.

<figure><img src="https://1689456522-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPuklMpEkV7SuzvbOxCsR%2Fuploads%2FVRf46EHR2Tj9LrJfz57v%2Fimage.png?alt=media&#x26;token=dd695721-c1dc-4efa-a825-80a33d065f9d" alt=""><figcaption><p>Festlegung API-Key bzw. Parameter</p></figcaption></figure>

### Erklärung Bestandteile Parameter

* `name`: Eindeutiger Namen des Parameters&#x20;
* `type`:  Datentyp (`text`, `number` oder `boolean`)
* `label`:  Label, das im Bot Builder im entsprechenden App-Modul aufgeführt ist
* `required`: Gibt an, ob der Parameter erforderlich ist (`true` oder `false`)

### Beispiel  - Parameter

```
[
  {
    "name": "apiKey",
    "type": "text",
    "label": "API Key",
    "required": true
  }
]
```

{% hint style="warning" %}
Parameter müssen in einem Array angegeben werden, ansonsten können die Änderungen nicht übernommen werden.  ( in eckigen Klammern: \[ ] )
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chatcaptain.com/bot-verwalten/app-marktplatz/app-erstellung-und-struktur/verbindungen.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
