Ilyas Hallak 98a914cb2e feat: Implementierung der Readeck API mit kompletter Architektur
- API-Klasse mit allen CRUD-Operationen für Bookmarks
  - Login/Authentifizierung mit Bearer Token
  - Bookmarks abrufen (Liste und Details)
  - Artikel-Inhalt abrufen
- DTO-Strukturen in separate Dateien aufgeteilt
  - UserDto für Authentifizierung
  - BookmarkDto für Bookmark-Listen
  - BookmarkDetailDto mit vollständigen Metadaten
- MVVM-Architektur mit @Observable
  - SettingsViewModel für Anmeldung
  - BookmarksViewModel für Bookmark-Verwaltung
- SwiftUI Views mit modernem Design
  - SettingsView mit Eingabefeldern und Validierung
  - BookmarksView mit Pull-to-Refresh und Leerzustand
  - MainTabView als Navigation
- Use Case Pattern implementiert
  - LoginUseCase für Authentifizierung
  - GetBookmarksUseCase für Datenabfrage
  - DefaultUseCaseFactory für Dependency Injection
- Fehlerbehandlung und Loading States
- Protocol-basierte Architektur für bessere Testbarkeit
2025-06-11 11:02:19 +02:00

56 lines
1.6 KiB
YAML

---
# SPDX-FileCopyrightText: © 2023 Olivier Meunier <olivier@neokraft.net>
#
# SPDX-License-Identifier: AGPL-3.0-only
auth:
summary: Authenticate
description: |
This route performs the authentication with a username and a password and returns a token
that you can use for all API requests.
You don't need to perform a request to this route each time you're using the API, only do it
once and keep the token somehow. You can use this route to provide a first time authentication
in a mobile application or any API client you may build and only store the resulting token.
You MUST provide an application name.
Alternatively, you can [create an authentication token](../profile/tokens) directly from
Readeck.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/authenticationForm"
responses:
"201":
description: Authentication success
content:
application/json:
schema:
$ref: "#/components/schemas/authenticationResult"
"403":
description: Authentication failed
content:
application/json:
schema:
$ref: "#/components/schemas/message"
# GET /profile
profile:
summary: User Profile
description: |
This route returns the current user's profile information. This includes the user information
and preferences, and the authentication provider with its permissions.
responses:
"200":
description: Profile information
content:
application/json:
schema:
$ref: "#/components/schemas/userProfile"