---
title: Einheitliche Zugangsschnittstelle
description: Die universelle REST-API und Abfragesprache, die Anwendungen einen einzigen, standardisierten Zugriff auf Daten und Funktionen des Systems bieten.
weight: 2
---

import Alert from '@/components/docs/Alert.astro';

## Universelle REST-API

Das System implementiert eine universelle REST-API, die eine einheitliche Interaktion zwischen verschiedenen Systemen, Anwendungen und Geräten ermöglicht. Sie ermöglicht die Abstraktion von Implementierungsdetails und bietet einen standardisierten Weg, um auf Daten und Funktionen des Systems zuzugreifen.

Der implementierte REST-API-Dienst weist die folgenden Datenverarbeitungsmerkmale auf:

- **Einheitlichkeit**: Alle Anfragen und Antworten folgen dem gleichen Format.
- **Skalierbarkeit**: Unterstützt die Arbeit mit einer großen Anzahl von Geräten und Benutzern.
- **Sicherheit**: Bietet Authentifizierung, Autorisierung und Datenverschlüsselung.
- **Dokumentation**: Verfügt über eine klare Dokumentation für Entwickler.

Der Dienst erleichtert die weitere Arbeit mit Daten erheblich:

- **Vereinfachte Integration**: Verschiedene Systeme und Geräte können über eine einzige Schnittstelle interagieren.
- **Hardware-Abstraktion**: Die Anwendungen sind nicht von bestimmten Geräten oder Protokollen abhängig.
- **Zentrale Verwaltung**: Alle Datenanfragen laufen über eine einzige Anlaufstelle.
- **Flexibilität**: Einfaches Hinzufügen neuer Funktionen oder Ändern bestehender Funktionen.

<Alert type="note">
  Der REST-API-Dienst wird im Abschnitt [API-Referenz](/de/api/v1) ausführlicher beschrieben
</Alert>

#### Beispiel für eine universelle REST-API-Anfrage

Datenanforderung:

```bash title="Request example"
GET /api/v1/channel_data?equipment_id=1&archive_type=daily&channel_id=3
```

Antwort:

```json title="Response example"
[
  {
    "id": 123,
    "equipment_id": 1,
    "seance_id": 2,
    "channel_id": 3,
    "archive_type_id": 4,
    "value": 42.5,
    "event_time": 1739950861
  }
]
```

### Vorteile der universellen REST-API

Der implementierte REST-API-Dienst ist ein leistungsstarkes Systemwerkzeug, das eine einheitliche Schnittstelle für den Datenzugriff schafft.

Sie ermöglicht es Ihnen:

- Abstrahieren Sie von bestimmten Geräten und Technologien.
- Gewährleistung von Konsistenz und Benutzerfreundlichkeit.
- Vereinfachung der Integration von neuen Systemen und Geräten.

## Abfragesprache

Um eine einheitliche Schnittstelle für den Datenzugriff zu organisieren, wird eine Abfragesprache verwendet, die es Benutzern und Anwendungen ermöglicht, mit einer Datenbank zu interagieren, um Informationen abzurufen, zu ändern oder zu verwalten. Eine universelle Abfragesprache bietet Konsistenz, Benutzerfreundlichkeit und leistungsstarke Datenmanipulationsmöglichkeiten.

Die Abfragesprache bietet die folgenden Möglichkeiten:

- **Vereinfachung der Datenverarbeitung**: Benutzer können Daten abrufen, ohne komplexen Code schreiben zu müssen.
- **Standardisierung**: Eine einzige Sprache für alle Datenoperationen.
- **Flexibilität**: Möglichkeit, sowohl einfache als auch komplexe Abfragen durchzuführen.
- **Integration**: Leichte Integration mit verschiedenen Systemen und Anwendungen.

### Beispiele für Abfragesprachen, die im System verwendet werden

#### SQL (Strukturierte Abfragesprache)

Das _PostgreSQL DBMS_ verwendet die Abfragesprache _SQL_, um mit Daten zu arbeiten. Es unterstützt grundlegende Datenmanipulationsoperationen.

Ein Beispiel für eine SQL-Abfrage zum Abruf von Daten:

```sql title="example.sql"
SELECT id, channel_id, value
FROM channel_data
WHERE equipment_id = 1 AND archive_type_id = 4;
```

#### REST-Schnittstelle mit Parametern

Die Universal _REST API_ implementiert eine _REST_-Schnittstelle mit Parametern als Teil ihrer Interaktion mit Daten. Dadurch kann die _API_ Abfrageparameter verwenden, um Daten zu filtern.

Zum Beispiel:

```bash title="Request example"
GET /api/v1/channel_data?equipment_id=1&channel_id=101
```

#### Schnittstelle für die Abfrage aktiver Datensätze

Die Framework-Plattform _Ruby On Rails_ implementiert _Active Record (Active Record Query Interface)_, mit dem Sie Datenbanken abfragen können, ohne SQL zu verwenden.

Hier ist ein Beispiel für eine _Active Record_ Abfrage zum Abrufen von Daten:

```ruby title="Active record example"
ChannelDatum.where(equipment_id: 1, archive_type_id: 4)
```
