Compare commits

...

2 Commits

Author SHA1 Message Date
Gulliver
228b723773 journalentry for 2021-05-31 added
toc depth set to 4
2021-05-31 21:30:37 +02:00
Gulliver
dec9a90fc5 make builds now singlehtml and pdf version of document 2021-05-31 21:18:27 +02:00
3 changed files with 203 additions and 2 deletions

View File

@ -4,3 +4,5 @@ export LC_ALL="de_DE.UTF-8"
doc:
$(MAKE) -C doc singlehtml
$(MAKE) -C doc latexpdf

View File

@ -7,12 +7,13 @@ Kompentenzinventar Entwickungsdokumentation
===========================================
.. toctree::
:maxdepth: 3
:maxdepth: 4
:caption: Contents:
architecture/overview
journal/journal
Indices and tables
==================

View File

@ -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