# `/project` Dieser Endpoint bietet eine Schnittstelle für den Zugriff und die Manipulation von Projektdaten. Benutzer können Projekte erstellen, abrufen, aktualisieren und löschen. ## GET /project Mit dieser Funktion können Sie eine Liste aller Projekte abrufen. Diese Funktion nimmt optionale Parameter an, die verwendet werden können, um die abgerufenen Projekte zu sortieren oder zu filtern. Diese request ruft eine Liste aller Projekte ab. Sie kann optionale Parameter verwenden, um die abgerufenen Projekte zu sortieren oder zu filtern. ### Antwort Die Antwort auf diese request ist ein Objekt mit zwei Eigenschaften: - `data`: Ein Array von Projekt-Objekten. - `count`: Die Gesamtzahl der Projekte die es gibt. Jedes Projekt-Objekt hat die folgenden Eigenschaften: ```ts interface Project { id?: string // Eindeutiger Identifikator für das Projekt insertTime?: string // Zeitpunkt der Erstellung des Projekts updateTime?: string // Letzter Zeitpunkt der Aktualisierung des Projekts configFile: string // Pfad zur config.yml des Projekts name: string // Name des Projekts description: string // Beschreibung des Projekts users?: string[] // Array von Benutzer-IDs mit Zugriff auf das Projekt api?: ProjectAPI // Zusätzliche Projektinformationen yourPermissions?: { // Berechtigungen des aktuellen Benutzers für das Projekt [collectionName: string]: MethodPermission } } ``` ## PUT /project/{id} Diese Anforderung aktualisiert ein vorhandenes Projekt. Sie nimmt die ID des zu aktualisierenden Projekts und ein Änderungsset als Parameter an. Das Änderungsset ist ein Objekt, das die zu ändernden Eigenschaften und ihre neuen Werte enthält. Anforderungsparameter - `id`: Die ID des zu aktualisierenden Projekts. - `data`: Ein Objekt, das die zu ändernden Eigenschaften und ihre neuen Werte enthält. ### Antwort Die Antwort ist das aktualisierte Project Objekt. ## DELETE /project/{id} Diese Anforderung löscht ein vorhandenes Projekt. Sie nimmt die ID des zu löschenden Projekts als Parameter an. ### Anforderungsparameter - `id`: Die ID des zu löschenden Projekts. ### Antwort Die Antwort ist ein Objekt mit einer message Eigenschaft, die eine Bestätigungsnachricht enthält. ## POST /project Diese Anforderung erstellt ein neues Projekt. Sie nimmt ein Objekt als Parameter an, das die Eigenschaften des zu erstellenden Projekts enthält. Anforderungsparameter - `data`: Ein Objekt vom typ Project. ### Antwort Die Antwort ist ein Objekt mit einer message Eigenschaft, die eine Bestätigungsnachricht enthält. ```ts interface MethodPermission { get: boolean post: boolean put: boolean delete: boolean } interface ProjectPermission { name: string label: I18Text } type ProjectImageUrl = string | EvalObject interface ProjectAPI { isOnline: boolean namespace: string meta?: { imageUrl?: ProjectImageUrl permissions?: ProjectPermission[] dashboard?: Dashboard [key: string]: any } collections: Collection[] } ```