From 228b723773af479c94775352d75af685d3aa2f74 Mon Sep 17 00:00:00 2001 From: Gulliver Date: Mon, 31 May 2021 21:30:37 +0200 Subject: [PATCH] journalentry for 2021-05-31 added toc depth set to 4 --- doc/source/index.rst | 5 +- doc/source/journal/journal.rst | 198 +++++++++++++++++++++++++++++++++ 2 files changed, 201 insertions(+), 2 deletions(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index 278fa9a..1cc71f1 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -7,12 +7,13 @@ Kompentenzinventar Entwickungsdokumentation =========================================== .. toctree:: - :maxdepth: 3 + :maxdepth: 4 :caption: Contents: architecture/overview journal/journal - + + Indices and tables ================== diff --git a/doc/source/journal/journal.rst b/doc/source/journal/journal.rst index fc140b1..c1b21cb 100644 --- a/doc/source/journal/journal.rst +++ b/doc/source/journal/journal.rst @@ -1,6 +1,204 @@ Journal ####### +2021-05-31 AG Dev - Kompentenzinventar +====================================== +backend repository aufgesetzt +https://git.wtf-eg.de/kompetenzinventar/ki-backend.git + +Fürs Backend soll flask eingesetzt werden. + +Für Datenmodell siehe #3. + +Authentifizierung +***************** + +HTTP Bearer Token. Wird vom Backend verwaltet. Es gibt eine konfigurierbare, maximale Gültigkeit für einen Token. + +Allgemeine Antworten: + +* 401: Anfrage ohne Token +* 403: Token abgelaufen oder ungültig + +Authorisierung +************** + +* Zugriff nur mit Login +* Jeder eingloggte Benutzer darf alles sehen +* Ein Benutzer darf nur sein eigenes Profil bearbeiten + +Endpunkte +***************** + +POST `/users/login` +------------------- + +Hiermit kann sich ein Benutzer anmelden. Der Endpunkt authentifiziert gegen LDAP. + +Anfrage: + +.. code-block:: text + :linenos: + + { + "username": "peter", + "password": "asdasd" + } + +Antwort: +**Status 200** + +Login hat geklappt + + +.. code-block:: json + + { + "token": "aSDASDADASDASD" + } + +**Status 403** + +Login hat nicht geklappt. Grund ist Benutzer existiert nicht oder Passwort war falsch. Kein weiterer Text über die API wegen Sicherheit. + +DELETE `/users/login` +--------------------- + +Markiert den zur Request Authentifizierung verwendeten Token als nicht mehr gültig. + +POST `/users/profile` +--------------------- + +Speichert ein Profil ab. Übertragene Daten entsprechen #3 im JSON Format. + +Anfrage: + +.. code-block:: json + + { + "profile": {} + } + + +Antwort: + +**Status 200** + +Gespeichert, ok + +**Status 400** + +Validierung fehlgeschlagen + +.. code-block:: json + + { + "messages": { + "nickname": "Bitte ausfüllen" + } + } + + +GET `/users/{id}/profile` +------------------------- + +Endpunkt um ein Profil gezielt nach ID abzurufen. + +Antwort: + + +**Status 200** + +Profil gefunden + +.. code-block:: json + + { + "profile": {} + } + +GET `/users/profiles` +------------------------- + +Suche nach Profilen mit Query-Parametern: + +* `skill[]=PHP` +* `page=1` für die Paginierung +* `page_size=20` Einträge pro Seite + +(Liste wird erweitert). + +Antwort: + +.. code-block:: json + + { + "total": 23, + "profiles": [] + } + +* `total` Gesamtanzahl der passenden Profile +* `profils` Liste mit Profilen + +GET `/skills` +------------------------- + +Hier können die auswählbaren Fähigkeiten inkl. Autovervollständigung abgerufen werden sowie "Ich Suche". + +* `search=an` +* Es werden 10 Einträge zurückgegeben + +Antwort: + +.. code-block:: json + + { + "skills": [ + { + "id": 23, + "name": "Angular" + }, + { + "id": 42, + "name": "Anforderungs-Management" + } + ] + } + + +GET `/skills/{id}/icon` +----------------------- + +Icon einer Fähigkeit (weils gut ausschaut). + +GET `/languages` +---------------- + +Abruf der Sprachen. + +* `search=fra` +* Es werden 10 Einträge zurückgegeben + +Antwort: + +.. code-block:: json + + { + "languages": [ + { + "id": 23, + "name": "Französisch" + } + ] + } + + +GET `/languages/{id}/icon` +-------------------------- + +Icon einer Sprache (weils gut ausschaut). + + 2021-05-28 KI Onboarding Planung ================================ scammos wireframes vom Frontend