Apollo Server (Express) - pigtastic/UBQ-Smarthome GitHub Wiki

Apollo Server ist ein Open-Source GraphQL Server, der mit vielen Node.js HTTP Server-Frameworks kompatibel ist.

Wir haben uns für einen Apollo Server entschieden, da wir mit GraphQL arbeiten wollten und der Apollo Server eine sehr schöne OpenSource Lösung mit ausreichend Dokumentation darstellt. Der Apollo Server kann als eine Erweiterung zum beliebten Express Server genutzt werden. Andere Möglichkeiten wären Hapi, Koa oder Restify. Da die Community um den Express Server sehr groß ist, haben wir uns für Apollo in Verbindung mit Express entschieden.

GraphQL ist eine Query Sprache, die eine Referenzimplementierung in JavaScript darstellt. Apollo baut darauf ein Ecosystem auf, um GraphQL in einem breitem Spektrum von Anwendungsbereichen zur Verfügung zu stellen. Apollo arbeitet ebenfalls an einer Lösung um eine Kompatibilität zu REST zu schaffen.

Apollo bietet zahlreiche Erweiterungen und Frameworks. Für dieses Projekt ist das apollo angular Framework sehr hilfreich. Es bietet die Möglichkeit GraphQL anfragen schnell und einfach an den Apollo Server zu schicken.

Anfragen können aber auch per HTTP GET oder POST Requests an den Server gesendet werden. Dafür muss die entsprechende Query oder Mutation als Payload im Body übergeben werden.

Der Apollo Server kann auch als Middleware genutzt werden. So können Anfragen verarbeitet und zu einer REST API oder an einen Microservice gesendet werden. Für uns dient er als Middleware zur Mongo Datenbank. Der Server ist dafür zuständig Geräte etc. in der Datenbank anzulegen, zu bearbeiten und auszulesen.