Compare commits
2 Commits
6ab90efb8d
...
228b723773
Author | SHA1 | Date | |
---|---|---|---|
|
228b723773 | ||
|
dec9a90fc5 |
2
Makefile
2
Makefile
@ -4,3 +4,5 @@ export LC_ALL="de_DE.UTF-8"
|
||||
|
||||
doc:
|
||||
$(MAKE) -C doc singlehtml
|
||||
$(MAKE) -C doc latexpdf
|
||||
|
||||
|
@ -7,12 +7,13 @@ Kompentenzinventar Entwickungsdokumentation
|
||||
===========================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 3
|
||||
:maxdepth: 4
|
||||
:caption: Contents:
|
||||
|
||||
architecture/overview
|
||||
journal/journal
|
||||
|
||||
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user