Datenbank, API und App

Ein paar kleine Nebenprojekte

Alpha App

In den letzten zwei Wochen habe ich sehr viel im Hintergrund und um meinen Blog herum gebastelt.

MySQL Datenbank

So habe ich die Datenbank meines Content Management Systems von "Flat File" - also diverse Dateien im Dateisystem in denen alle Rezepte gespeichert sind - auf eine MySQL-Datenbank portiert. Eigentlich erhoffte ich mir dadurch einen gewissen Geschwindigkeitszuwachs, der sich aber nicht wirklich zeigte.

Aber ich habe einen anderen Vorteil gewonnen: auf Daten in einer Datenbank kann ich auch von anderen Websiten oder einer App aus zugreifen. Mit dem Gedanken einer App spiele ich schon lange und sei es nur um einmal mit verschiedenen Frameworks wie z.B. Angular, Ember oder React in einem sinnvolleren Rahmen als einem "Hello World"-Beispiel herumzuspielen. 

FoodieYamwoonsenAPI, eine Schnittstelle für Rezepte

Um in einer solchen potentiellen App nicht direkt auf die neue MySQL-Datenbank zugreifen zu müssen, habe ich eine kleine API (application programming interface) geschaffen. Damit muss ich nicht in jedem neuen Projekt die Datenbankabfragen neu implentieren und kann auch solche Fraworks einsetzen die überhaupt keine Abfragen an eine Datenbank absetzten können.

Die API ist ein kleines PHP Projekt über das typische Datenbankabfragen wie z.B. "Finde alle Rezepte in denen 'Curry' vorkommt", "Gib mir alle Rezepte die das Stichwort 'Thailand' haben" oder "Gib mir ein bestimmtes Rezept" per URL abgefragt werden können und das die Ergebnisse als JSON-Strings zurückliefert.

Der erste dankbare Abnehmer dieser API war z.B. das Feature "Zufallsrezept" im Blog. Vorher musste ich für ein neues Rezepte im Zufall-Script immer die maximale Rezept-Id setzten und eine Liste führen welche Beiträge gar keine Rezepte sind um diese eben nicht als Zufallsrezept anzuzeigen. Jetzt setzt das Zufall-Script nur noch die Anfrage "Gib mir ein zufälliges Rezept" an die API ab, bekommt eine zufällige Id zurück und leitet Euch auf das zufällige Rezept weiter.

FoodieYamwoonsenApp (alpha)

Auch mit einer kleinen App habe ich nun schon wirklich angefangen, zu ersteinmal eine pure JQuery App ohne ein spezielles App-Framework nach dem Vorbild von Danny Markovs "Making a Single Page App Without a Framework" Artikel auf tutorialzine.

Von dieser kleinen App dürft Ihr noch nicht allzuviel erwarten, sie zeigt lediglich die Vorschaubilder aller Rezepte an. Beim Klick auf ein Rezept erscheint ein großes Bild mit Link auf das Rezept im "herkömmlichen" Blog. Mehr Interaktion wie z.B. Filter bietet sie noch nicht. Der momentane Zustand ist mehr als ein Proof-of-Concept und als frühe Alpha-Phase anzusehen. 

Aber auf dieser soliden Basis kann ich nun recht einfach Funktionalitäten hinzufügen und auch mit anderen App-Frameworks herumspielen und wer weiß villeicht, kommt ja noch eine "richtige" App für Handy und Tablet dabei heraus.

jens am 16.10.2015 um 07:22 in Tech-Talk