Open guenterh opened 6 years ago
Für mich stellt sich die Frage, was wir gewinnen, wenn wir anstatt direkt auf den ES auf ein Middelware zugreifen. Die Usecases können lesend direkt über ES umgesetzt werden. Schreiben ist dann nochmals eine andere Sache, da stimme ich zu. Grundsätzlich interessiert mich die Middleware sehr... Noch zur Installation. Lässt sich das mittels Ansible automatisieren, so dass wir die Infrastruktur einfach replizieren können?
git clone des Repositories
composer install
Einrichten eines virtuellen Apacheservers (s. https://github.com/dataramblers/api-middleware/blob/master/notes/hydras4.conf als Vorlage)
Einrichten eines lokalen ES servers. Dazu kann das file https://drive.switch.ch/index.php/s/XgwcgrhuWFmjOwH heruntergeladen werden. Einfach auspacken und server in ES_APP/bin/elasticsearch -d -ppid starten
Zugriff auf den ES server ist über port 8080 möglich Der Zugriff auf den ES server über apimiddleare wird über https://github.com/dataramblers/api-middleware/blob/master/config/packages/elasticsearch_adapter.yml gesteuert. Die Queries sind konfiguriert
Der ES server ist im Moment noch auf Basis 5.6. Ich werde das umstellen, kann das im Moment aber nicht alles gleichzeitig machen
Status API platform (api-middleware)
ich benutze die letzte Version (2.2.x)
musste einige Anpassungen machen, damit der Update von 2.1 (auf Basis Symfony 3.4) zu 2.2 (Basis Symfony 4) möglich war
Nach dem Start waren jedoch alle entities, die wir in linked-swissbib benutzen, vorhanden
ein Testdatenset für den Zugriff liefere ich mit dem ES package mit
nach dem Start wird im Moment die swagger UI angezeigt. Das liegt daran, weil dieser Typ (https://github.com/dataramblers/api-middleware/blob/master/src/Swagger/Normalizer/DocumentationNormalizer.php) bei der Umstellung nach 2.2 einen Fehler wirft und ich temporär ausgeschaltet habe. Die API platform zeigt default im content/negotiation html diese UI an. In data.swissbib.ch haben wir unsere eigene page.
ich muss noch ein paar Dinge im Zusammenspiel API platform / S4 lernen.
Mein Vorschlag:
Einsatz von Docker und co: API platform bietet sehr stark Dockercontainer für alle Komponenten an. Was mach dabei störte: Das ist ganz nett für einen maximal schnellen Einstieg. Möchte man die fixen Pfade verlassen (und das macht man sehr schnell) fühle ich mich sehr schnell eingeschränkt und kämpfe erstmal eine Zeitlang mit der Infrastruktur bevor ich etwas machen kann. Ich lasse mich mit guten Argumenten gerne vom Gegenteil überzeugen