Opennet API: Unterschied zwischen den Versionen
Aus Opennet
Lars (Diskussion | Beiträge) (Entwicklungshinweise hinzugefügt) |
Lars (Diskussion | Beiträge) (Hinweis auf http-Abruf von ondataservice-Daten) |
||
(10 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | Die Opennet API (Geronimo v2) bietet Statusdaten des Mesh-Netzwerks und Meta-Daten der lokalen Communities basierend auf verschiedenen Quellen mittels einer REST-API an. Der Vorgänger dieses Diensts war [[Geronimo/v1|Geronimo v1]]. | ||
+ | |||
== Überblick == | == Überblick == | ||
− | * Vorgedanken und Funktionsumfang: [[Geronimo/ | + | * Vorgedanken und Funktionsumfang: [[Geronimo/v2/Planung]] |
* [https://dev.on-i.de/query?status=accepted&status=assigned&status=new&status=reopened&component=on_geronimo&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&desc=1&order=status Tickets] | * [https://dev.on-i.de/query?status=accepted&status=assigned&status=new&status=reopened&component=on_geronimo&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&desc=1&order=status Tickets] | ||
− | * | + | URLs für einen Node: |
+ | * https://api.opennet-initiative.de/api/v1/accesspoint/192.168.1.11 | ||
+ | * https://api.opennet-initiative.de/api/v1/accesspoint/192.168.1.11/links | ||
+ | |||
+ | Für alle Nodes: | ||
+ | * https://api.opennet-initiative.de/api/v1/accesspoint/ | ||
+ | * https://api.opennet-initiative.de/api/v1/link | ||
+ | * https://api.opennet-initiative.de/api/v1/interface | ||
+ | |||
+ | Filtern nach AP-Status, z.B. "online" (alternativ "flapping") | ||
+ | * https://map.opennet-initiative.de/api/v1/accesspoint/?status=online&data_format=geojson&in_bbox=10.314788818359373,53.72027890176105,14.860382080078127,54.29969774594346 | ||
+ | |||
+ | Für JSON-Format ?format=json anhängen, z.B.: | ||
+ | * https://api.opennet-initiative.de/api/v1/accesspoint/192.168.1.11?format=json | ||
+ | |||
+ | Für GeoJSON ?format=geojson, z.B. alle Links im GeoJSON Format: | ||
+ | * https://map.opennet-initiative.de/api/v1/link/?data_format=geojson&in_bbox=10.314788818359373,53.72027890176105,14.860382080078127,54.29969774594346 | ||
== Datenquellen == | == Datenquellen == | ||
* Wiki: AP-Liste mit Besitzern und Positionen | * Wiki: AP-Liste mit Besitzern und Positionen | ||
* [[Ondataservice]]: Hardware, Firmware, Systemzustand, Netzwerkschnittstellen | * [[Ondataservice]]: Hardware, Firmware, Systemzustand, Netzwerkschnittstellen | ||
+ | ** derselbe Datensatz ist auch via [[Ondataservice#Alternativer_HTTP-Abruf|HTTP-Abruf]] verfügbar (erfordert eine manuelle Anpassung für Firmware bis 0.5.4) | ||
* [[OLSR]]: Links, Qualität, "lastseen"-Zeitstempel | * [[OLSR]]: Links, Qualität, "lastseen"-Zeitstempel | ||
* manuell gepflegte Liste von Regionen für [[Freifunk API]] | * manuell gepflegte Liste von Regionen für [[Freifunk API]] | ||
Zeile 20: | Zeile 39: | ||
== Entwicklung == | == Entwicklung == | ||
− | * [http://dev.opennet-initiative.de/browser/on_geronimo git-Repository] auschecken: <tt>git clone | + | * [http://dev.opennet-initiative.de/browser/on_geronimo git-Repository] auschecken: <tt>git clone https://dev.opennet-initiative.de/git/on_geronimo</tt> |
* Dienst lokal starten: <tt>python3 manage.py runserver</tt> | * Dienst lokal starten: <tt>python3 manage.py runserver</tt> | ||
* Daten importieren (manuell): | * Daten importieren (manuell): | ||
− | |||
** python3 manage.py import_wiki | ** python3 manage.py import_wiki | ||
− | ** python3 manage.py import_ondataservice | + | ** python3 manage.py import_olsr http://192.168.2.76:2006/ |
+ | ** python3 manage.py import_ondataservice examples/ondataservice.db | ||
* API abfragen (z.B. Browser oder curl): http://localhost:8000/api/v1/accesspoint/ | * API abfragen (z.B. Browser oder curl): http://localhost:8000/api/v1/accesspoint/ | ||
* Release erstellen: <tt>make release-(major|minor|patch)</tt> | * Release erstellen: <tt>make release-(major|minor|patch)</tt> | ||
* deb-Paket bauen: <tt>make dist-deb</tt> | * deb-Paket bauen: <tt>make dist-deb</tt> | ||
+ | * deb-Paket bauen und auf einem Server installieren: <tt>make deploy-deb-remote DEPLOY_TARGET=root@example.on</tt> | ||
+ | |||
+ | == Installation == | ||
+ | * deb-Paket installieren (zuvor eventuell manuell erstellen - siehe oben) | ||
+ | * den Anweisungen aus der Datei <tt>/usr/share/doc/on-geronimo-api/README.Debian</tt> folgen |
Aktuelle Version vom 13. April 2019, 13:15 Uhr
Die Opennet API (Geronimo v2) bietet Statusdaten des Mesh-Netzwerks und Meta-Daten der lokalen Communities basierend auf verschiedenen Quellen mittels einer REST-API an. Der Vorgänger dieses Diensts war Geronimo v1.
Inhaltsverzeichnis |
[Bearbeiten] Überblick
- Vorgedanken und Funktionsumfang: Geronimo/v2/Planung
- Tickets
URLs für einen Node:
- https://api.opennet-initiative.de/api/v1/accesspoint/192.168.1.11
- https://api.opennet-initiative.de/api/v1/accesspoint/192.168.1.11/links
Für alle Nodes:
- https://api.opennet-initiative.de/api/v1/accesspoint/
- https://api.opennet-initiative.de/api/v1/link
- https://api.opennet-initiative.de/api/v1/interface
Filtern nach AP-Status, z.B. "online" (alternativ "flapping")
Für JSON-Format ?format=json anhängen, z.B.:
Für GeoJSON ?format=geojson, z.B. alle Links im GeoJSON Format:
[Bearbeiten] Datenquellen
- Wiki: AP-Liste mit Besitzern und Positionen
- Ondataservice: Hardware, Firmware, Systemzustand, Netzwerkschnittstellen
- derselbe Datensatz ist auch via HTTP-Abruf verfügbar (erfordert eine manuelle Anpassung für Firmware bis 0.5.4)
- OLSR: Links, Qualität, "lastseen"-Zeitstempel
- manuell gepflegte Liste von Regionen für Freifunk API
[Bearbeiten] Funktionsumfang
- Zusammenfassung verschiedener Datenquelle
- aktuelle Zustände von Accesspoints und Links ausliefern
- Metadaten für die Freifunk API ausliefern
[Bearbeiten] Architektur
- Django-Anwendung liefert Daten via REST-Framework aus (inkl. Unterstützung für Geodaten - z.B. Bounding-Box-Limitierung von Abfragen)
- Import von Daten aus den verschiedenen Quellen via cron-Jobs
[Bearbeiten] Entwicklung
- git-Repository auschecken: git clone https://dev.opennet-initiative.de/git/on_geronimo
- Dienst lokal starten: python3 manage.py runserver
- Daten importieren (manuell):
- python3 manage.py import_wiki
- python3 manage.py import_olsr http://192.168.2.76:2006/
- python3 manage.py import_ondataservice examples/ondataservice.db
- API abfragen (z.B. Browser oder curl): http://localhost:8000/api/v1/accesspoint/
- Release erstellen: make release-(major|minor|patch)
- deb-Paket bauen: make dist-deb
- deb-Paket bauen und auf einem Server installieren: make deploy-deb-remote DEPLOY_TARGET=root@example.on
[Bearbeiten] Installation
- deb-Paket installieren (zuvor eventuell manuell erstellen - siehe oben)
- den Anweisungen aus der Datei /usr/share/doc/on-geronimo-api/README.Debian folgen