Index_Projekt

Projekt | BB-Power-API

Von am 10.06.2024

Dieses Projekt wurde in Kooperation mit der Benefit Büroservice GmbH gemacht. Die Idee des Projektes ist die Entwicklung einer Webanwendung zur Verwaltung von API-Schlüsseln zur Bereitstellung von unabhängigen API-Satelliten.

Funktionalitäten

Login & Authentifizierung

Für den Login und die Authentifizierung wurde die standardmäßige Login-Methodik von Laravel verwendet. Diese wurde so weit angepasst, damit sie den Anforderungen entsprochen hat. Nach dem erfolgreichen Login befindet man sich in der Applikation und man erkennt die Menüpunkte Projekte, Satelliten und Logs. Weiters wird die E-Mail-Adresse angezeigt, mit der man gerade eingeloggt ist. Die Userverwaltung erfolgt zurzeit mittels Commands, die in der Admin-Applikation liegen. Mit diesen Commands können User erstellt, gelöscht beziehungsweise aktualisiert werden.

Satelliten erstellen

Als Satelliten werden die unabhängigen Microservices bezeichnet. Diese müssen nach ihrem Deployment in der Admin-Applikation angelegt werden. Hierbei ist es wichtig, dass die URL übereinstimmen muss und der Admin-Key derselbe ist, wie der, der in der .env-Datei des Satelliten hinterlegt wurde. Die CRUD-Funktionen werden geloggt und können jederzeit im Menüpunkt Logs angesehen werden. Im oberen Video kann man die genauere Funktionalität sehen.

Projekte & Client-Keys erstellen

Um einen Schlüssel erstellen zu können, benötigt man zunächst ein Projekt, denn Schlüssel können nur innerhalb eines Projektes erstellt werden (ähnlich wie in der Google Cloud Console). Ein Projekt kann also mehrere Schlüssel enthalten, ein Schlüssel kann jedoch nur zu einem Projekt gehören. Bei der Erstellung eines Projektes benötigt man nur einen Namen. Im Hintergrund wird dann ein unique Identifier für dieses Projekt erstellt. Im Projekt selber können dann die Client-Keys (die API-Schlüssel) erstellt werden. Hierbei muss man auswählen, für welche Satelliten dieser Schlüssel gelten soll. Ein Schlüssel hat somit mehrere Satelliten, auf die er dann Zugriff hat. Bei der Erstellung des Schlüssels wird dieser nicht nur in der Admin-Applikation erstellt, sondern auch auf den ausgewählten Satelliten selbst auch, damit der Schlüssel dann auf die Ressourcen der Satelliten zugreifen kann. Dieser Schlüssel kann dann einfach kopiert werden und im Header der Requests mitgeschickt werden. Falls bei der Erstellung des Schlüssels in der Admin-Applikation oder auf dem Satelliten etwas schieflaufen sollte, dann wird dies geloggt und man kann dann manuell nachbessern. Im oberen Video wird die Erstellung von einem Projekt und einem Client-Key kurz gezeigt.

APIs der Satelliten

Im Laufe des Projektes wurden 2 Satelliten erstellt. Ein Satellit ist für die Informationsbeschaffung von Telefonnummern da und der andere Satellit bereinigt Telefonnummern. Hier sieht man den Request für Informationen von Telefonnummern mit dem API-Schlüssel, der im vorigen Video erstellt worden ist:

Die Funktionsweise des 2. Satelliten kann man hier sehen:

Eingesetzte Technologien

Da es sich in diesem Projekt um 3 separate Projekte handelt, sind die eingesetzten Technologien etwas unterschiedlich. Generell wurde in PhpStorm entwickelt und für alle 3 Applikationen Laravel 11 im Backend verwendet. Für die Verwendung von Laravel wurde Laravel Herd und MySQL mit HeidiSQL verwendet. Postman wurde für schnelle Tests an den Requests verwendet. In der Admin-Applikation wurde im Frontend zusätzlich Vue mit Inertia und Bootstrap verwendet.

Technologien im Überblick (mit Links):

  • Vue (https://vuejs.org/)
  • Inertia (https://inertiajs.com/)
  • Bootstrap (https://getbootstrap.com/)
  • Laravel 11 (https://laravel.com/)
  • Laravel Herd (https://herd.laravel.com/windows)
  • MySQL (https://www.mysql.com/de/)
  • HeidiSQL (https://www.heidisql.com/)
  • Postman (https://www.postman.com/)
  • GitHub (https://github.com/)
  • GitHub Desktop (https://desktop.github.com/)

Vorgangsweise

Die größte Herausforderung in diesem Projekt war definitiv das Anlegen der Projekte, da ich selbst noch nicht so oft ein Projekt von null weg aufgebaut habe. Dies war am Anfang eine große Aufgabe, besonders in der Admin-Applikation, da es hier auch ein Frontend gab. Nach diesen anfänglichen Schwierigkeiten lief alles andere relativ gut ab. Nach dem Anlegen wurde die Funktionalitäten der Admin-Applikation mit dem Frontend implementiert und danach ging es and die Funktionalitäten der Satelliten. Das Design des Frontend war von weniger Priorität, es ging nur um ein relativ simples Design, dass einem Feedback auf Tätigkeiten gibt. Bei der Implementierung der Satelliten wurden dann noch einige kleinere Bugs behoben, die aber nicht besonders schwierig waren.

Zukünftige Erweiterungen

Zukünftige Erweiterungen wurden schon geplant und werden auch in näherer Zukunft umgesetzt werden. Die Erweiterung von Statistiken der Satelliten und Anzeige in der Admin-Applikation wird gerade implementiert und sollte in den nächsten Wochen veröffentlicht werden.

Schlussworte

Das Projekt war definitiv eine Herausforderung, da ich so ein großes Projekt noch nicht alleine umgesetzt habe. Außerdem konnte ich dadurch die neueste Laravel Version testen und lernen und auch ein Projekt umsetzen, dass so im unternehmerischen Alltag auch wirklich verwendet wird.

The comments are closed.