Eine API (deutsch: Schnittstelle zur Anwendungsprogrammierung) oder auch Programmierschnittstelle ist der Programmteil eines Systems, der anderen Programmen eine Anbindung an das System ermöglicht. Über solche Schnittstellen werden Informationen aus einem System anderen Systemen zur Verfügung gestellt.
Jüngst haben wir die Weichen für die Weiterentwicklung unserer Freifunk API gestellt. So ist es jetzt zum Beispiel möglich einfach eine Freifunkkarte zu erstellen oder eine Auflistung aller Freifunk-Initiativen in Deutschland plattformübergreifend anzubieten.
Dafür stand zuerst die Entflechtung der bisherigen Anknüpfungspunkte (Repositories) an, in denen sich schon ein ziemlicher Wildwuchs entwickelt hatte. Vielen Dank an @ratopi, der diese Aufgabe übernommen hat. Die neue Aufteilung in verschiedene Repositories ergibt für die Kernkomponenten diese Struktur sieht wie folgt aus:
- api.freifunk.net: enthält das Herz der API, nämlich die Spezifikation und den Generator und kann später noch um die Dokumentation ergänzt werden.
- directory.api.freifunk.net: hier liegt von nun an das Verzeichnis, der einzig wirklich zentralen Komponente der API
- common.api.freifunk.net: diese Repository enthält Software, die von allen anderen Modulen gleichermaßen gebraucht und verwendet wird. Als Beispiel seien hier der Collector oder der Updater für die Anzahl der Knoten genannt
Die bisherigen Anwendungen sind wie folgt gegliedert:
- cmap.api.freifunk.net: Die Communitymap, die auf freifunk.net eingesetzt wird und sich aus den Daten der API generiert wird in diesem Repository gepflegt
- feed.api.freifunk.net: Diese Anwendung aggregiert die per API bekanntgegebenen Feeds der einzelnen Communities
- viewer.api.freifunk.net: Der jüngste Zuwachs in der API-Familie ist der Viewer, der die API-Daten übersichtlich in einer Tabelle präsentiert
Für weitere Anwendungen und Ideen legen wir gern neue Repositories an. Ziel dieser Aufteilung ist es, die Anwendungen unabhängig voneinander entwicklen zu können, z.B. Versionen unabhängig zu veröffentlichen und Commit-Meldungen sauber zu koordinieren. Das soll auch den Einstieg für neue Entwickler erleichtern, die sich nicht durch einen Dschungel an Dateien und Verzeichnissen arbeiten wollen.
Die Spezifikation der API befindet sich nun auf dem Weg zur nächsten Version. Wir haben mit der Weiterentwicklung begonnen und arbeiten die anstehenden Tickets ab. Im Generator unter http://freifunk.net/api-generator sind die Fortschritte schon eingebaut. Bereits eingefügt ist die Sektion ‘timeline’, in der wichtige Daten wie das Gründungsdatum (vielleicht auch das Datum der Wiedergründung) und andere wichtige Meilensteine von Communities hineinpassen. Für die historisch Interessierten unter uns können sich hier spannende Informationen finden. Die Events wurden so umgebaut, dass sie eine URL zu einem exportierten Kalender enthalten. Ganz neu ist außerdem die Möglichkeit verschiedene Knotenkarten und Visualisierungen als Links aufzunehmen. Weitere Anpassungen folgen nach und nach.
Hier findest Du die Schritt-für-Schritt Anleitung.
Wer neue Ideen für die API hat oder etwas beisteuern möchte und dabei Hilfe und Unterstützung benötigt, kann sich an Andi vom Webteam wenden. Wenn ihr generelle Fragen zur API habt oder anders helfen wollt, kontaktiert uns einfach!