Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
wiki:software:beuthbot:database-microservice [22.07.2020 17:59] Tobias Belkner |
wiki:software:beuthbot:database-microservice [23.07.2020 12:40] (aktuell) Tobias Belkner |
||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
- [[[[wiki: | - [[[[wiki: | ||
+ | - [[[[wiki: | ||
+ | - [[[[wiki: | ||
+ | - [[[[wiki: | ||
Zeile 10: | Zeile 13: | ||
===== Motivation ===== | ===== Motivation ===== | ||
- | ==== Technologien ==== | + | Um die Datenbank unabhängig von den anderen Microservices zu machen, mussten die Datenbank Operationen ausgelagert werden. Das führte dazu, dass die Intents von Rasa aufgelöst werden mussten, damit die richtigen Datenbank Operationen ausgeführt werden können. |
+ | ===== Technologien | ||
+ | Aufgebaut wurde dieser Microservice als REST-Server mit JavaScript. Die verwendeten Technologien dafür sind: | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | ===== Funktionsweise ===== | ||
+ | <uml> | ||
+ | @startuml | ||
+ | participant Registy as R | ||
+ | participant DatabaseMicroservice as DBM | ||
+ | participant DatabaseController as DBC | ||
+ | participant MongoDB as MDB | ||
+ | R -> DBM: Send Intent | ||
+ | activate DBM | ||
+ | DBM -> DBC: DatabaseOperation | ||
+ | activate DBC | ||
+ | |||
+ | DBC -> MDB: DatabaseOperation | ||
+ | activate MDB | ||
+ | |||
+ | |||
+ | return Response | ||
+ | return Response | ||
+ | return Response | ||
+ | @enduml | ||
+ | </ | ||
+ | |||
+ | Da dieser Microservice nur eine Route besitzt, über welche der Intent gesendet wird, muss der Microservice dazu in der Lage sein, diesen Intent aufzulösen, | ||
+ | |||
+ | <code name=" | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ... | ||
+ | } | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | ..., | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | ... | ||
+ | ], | ||
+ | " | ||
+ | ... | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Durch den Intent, erfährt man, welche Operation ausgeführt werden soll und in den Entities steht drin, was hinzugefügt/ | ||
+ | |||
+ | ==== API ==== | ||
+ | |||
+ | === Request === | ||
+ | < | ||
+ | POST https:// | ||
+ | </ | ||
+ | oder | ||
+ | < | ||
+ | POST https:// | ||
+ | </ | ||
+ | |||
+ | === Response === | ||
+ | |||
+ | < | ||
+ | { | ||
+ | answer: { | ||
+ | content: 'Deine Daten: | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | 'home: **köln**\n', | ||
+ | history: [ ' | ||
+ | } | ||
+ | } | ||
+ | </ | ||