2 Komitmen 0cbe8a3ec1 ... f3b8e8d50d

Pembuat SHA1 Pesan Tanggal
  Michael Zitzmann f3b8e8d50d Initial commit 5 tahun lalu
  Michael Zitzmann 0cbe8a3ec1 Initial commit 5 tahun lalu
3 mengubah file dengan 144 tambahan dan 3 penghapusan
  1. 140 1
      doc/03_module.md
  2. 3 1
      src/js/config.js
  3. 1 1
      src/js/utilities/api.js

+ 140 - 1
doc/03_module.md

@@ -68,4 +68,143 @@ Die Datenbasis diese Moduls ist eine einfache Liste von Ereignissen. Ein Ereigni
 
 #### *Online* Version
 
-<API-Dokumentation>
+Die Konfiguration für den Zugriff auf die API ist in `src/js/config.js` definiert.
+
+```
+  api: {
+    random: 'M1_Risikopaare/Random',
+    create: 'M1_RisikopaareUserData/Create',
+    proportions: 'M1_RisikopaareUserData/CountsByPairId/',
+    url: 'https://www.adaptivetoolbox.net/risikoatlas/api/'
+  }
+```
+
+Dabei setzt sich eine Anfrage an die API aus der URL, dem entsprechenden Endpunkt und gegebenenfalls einem oder mehreren Parametern bzw. einem 
+Für die Abfrage von Daten und das Erstellen neuer Einträge in der Datenbank sind folgende Endpunkte von der API definiert:
+
+##### Ereignisdaten
+
+Für alle auf Ereignise bezogenen Anfragen an die API werden `GET` Requests an die in der `config.js` festgelegte `api.url` verwendet. Folgende API Endpunkte sind definiert:
+
+1. Abfrage eines Datensatzes mit zwei zufällig gewählten Ereignissen:
+
+`/M1_Risikopaare/Random`
+
+Zurückgegeben wird ein Objekt mit folgender Struktur:
+
+```
+{
+    "id": 1700,
+    "paar": [
+        {
+            "id": 32,
+            "bezeichnung": "Tod durch Vorsätzliche Selbstbeschädigung",
+            "basisRisiko": 12.64,
+            "bezugsrahmen": "innerhalb eines Jahres",
+            "referenzJahr": "2014",
+            "referenz": "Destatis"
+        },
+        {
+            "id": 59,
+            "bezeichnung": "Tod durch Essen von 100 kohlegegrillten Steaks",
+            "basisRisiko": 0.1,
+            "bezugsrahmen": "innerhalb eines Jahres",
+            "referenzJahr": "2010",
+            "referenz": "wiki"
+        }
+    ]
+}
+```
+
+2. Abfrage der Liste aller Ereignispaare:
+
+`/M1_Risikopaare/Liste`
+
+3. Abfrage eines spezifischen Ereigispaars:
+
+`/M1_Risikopaare/ById/{id}`
+
+wobei `{id}` für die ID des gesuchten Ereignispaares steht.
+
+##### Benutzerdaten
+
+Um den Vergleich zu anderen Nutzern zu ermöglichen werden die gewählten Antworten mit Benutzer-ID und Ereignispaar-ID gespeichert.
+
+1. Erzeugen eines neuen Eintrags in der Datenbank:
+
+`/M1_RisikopaareUserData/Create`
+
+Per `POST` Request müssen dafür folgende Daten übermittelt werden:
+- ID des Ereignispaars
+- ID des aktuellen Nutzers
+- ID des aktuellen Ereignispaars
+- Angabe, ob die Antwort richtig oder falsch war.
+
+2. Abfrage der "Stimmen" für Ereignisse aus einem Ereignispaar
+
+`/M1_RisikopaareUserData/CountsByPairId/?pairId={id}`
+
+Per `GET` Request muss die ID des Ereignispaars als Parameter übergeben werden.
+
+Ein entsprechender Datensatz sieht wie folgt aus:
+
+```  
+{
+    "id": 1700,
+    "paar": [
+        { "id": 32, "anzahlStimmen": 1.0 },
+        { "id": 59, "anzahlStimmen": 0.0 }
+    ]
+}
+```
+
+3. Abfrage der Anteile falscher und richtiger Antworten über alle Fragen und Benutzer hinweg
+
+`/M1_RisikopaareUserData/Proportions`
+
+liefert prozentuale Anteile in folgender Struktur:
+
+```
+{
+    "richtig": 0.61931290622098423,
+    "falsch": 0.38068709377901577
+}
+```
+
+4. Abfrage des Verhältnisses der "Stimmen" für ein spezifisches Ereignispaar
+
+`/M1_RisikopaareUserData/ProportionsByPairId/?pairId={id}`
+
+5. Abfrage des vollständigen Datensatzes von Benutzerantworten
+
+`/M1_RisikopaareUserData/Liste`
+
+6. Abfrage einer bestimmten Antwort
+
+`/M1_RisikopaareUserData/ByRecordId/{id}`
+
+Zurückgegeben wird ein Datensatz, der einer Auswahl eines Benutzers aus einem Ereignispaar entspricht:
+
+```
+{
+  "id": 1,
+  "userId": 2,
+  "risikoPaarId": 3,
+  "correct": true
+}
+```
+
+7. Abfrage aller Einträge eines Benutzers
+
+`/M1_RisikopaareUserData/ByUserId?userId={id}`
+
+Die `id` des gefragten Benutzers muss als Parameter des `GET` Requests übergeben werden.  
+Zurückgegeben wird eine Liste der entsprechenden Einträge:
+
+```
+[
+    { "id": 1, "userId": 1, "risikoPaarId": 2, "correct": true },
+    { "id": 2, "userId": 1, "risikoPaarId": 3, "correct": false },
+    { "id": 3, "userId": 1, "risikoPaarId": 1, "correct": false }
+]
+```

+ 3 - 1
src/js/config.js

@@ -5,7 +5,9 @@ export default {
     random: 'M1_Risikopaare/Random',
     create: 'M1_RisikopaareUserData/Create',
     proportions: 'M1_RisikopaareUserData/CountsByPairId/',
-    url: 'https://www.adaptivetoolbox.net/risikoatlas/api/'
+    url: 'https://www.adaptivetoolbox.net/risikoatlas/api/',
+    user: '',
+    pwd: ''
   },
   fonts: {
     default: {

+ 1 - 1
src/js/utilities/api.js

@@ -75,7 +75,7 @@ const api = {
     const myInit = {
       headers: requestHeaders,
       method: 'post',
-      body: 'grant_type=password&username=jens.becker%40kf-interactive.com&password=P4ssw0rd%21'
+      body: `grant_type=password&username=${config.api.user}&password=${config.api.pwd}`
     };
 
     requestHeaders.append('Content-Type', 'application/x-www-form-urlencoded');