Amphis-API eine vollständig unvollständige Dokumentation

Grundlegendes

Amphis primäre Interaktions-Oberfläche ist die HTML-basierte Benutzeroberfläche. Diese ist überwiegend so strukturiert, dass diese auch maschinell bedient werden kann. Amphis folgt den REST-Prinzipien und jede Ressource hat mindestens eine HTML- und oft auch eine JSON-Repräsentation.

Die Wahl Repräsentation (Media-Type) einer Ressource wird durch den "Accept"-Header vorgegeben: Accept: text/html für HTML, Accept: application/json für JSON, Accept: text/csv für CSV. Alternativ kann diese mittels "Dateiendung" über die URL erzwungen werden: z.B. GET /sites.html für HTML, GET /sites.json für JSON. Die Dateiendung hat eine höhere Priorität als der Accept-Header, somit würde GET /sites.json mit gleichzeitig gesetztem Accept: text/html-Header immer JSON ausliefern.

Auth

Alle öffentlichen Ressourcen sind anonym abrufbar, sowohl als HTML als auch als JSON/CSV usw. Viele Detailinformationen zu einzelnen Standorten wie z.B. die genauen Beobachtungszahlen sind nur sichtbar für angemeldete oder direkt am Standort involvierte Benutzer. Wird vor einem gültigen Login eine geschützte Ressource aufgerufen, so erfolgt ein HTTP-Redirect auf das Login-Formular. Dieses kann genutzt werden, um ein Session-Cookie zu erhalten (_amphis_session), welches bei nachfolgenden Requests mitgesendet werden sollte. Alternativ unterstützt Amphis aber auch HTTP Basic Auth, d.h. bei jedem Request werden die Benutzer-Credentials im "Auth"-Header mitgesendet.

Haupt-Ressourcen

Standort (site)

Der Standort bezeichnet entweder einen echten Zaunstandort oder eine übergeordnete Verwaltungsebene.

GET /sites.html
Liste der toplevel-Standorte mit Suchformular
GET /sites.json
flaches Array aller Site-Objekte in der Datenbank
GET /sites.(html|json)?search_query=str
Liste aller Standorte, name gefiltert nach str

Subressourcen:

GET /sites/:site_id/activity(.json|html|csv)
GET /sites/:site_id/forecasts(.json|html|csv)
PUT /sites/:site_id/forecasts(.json|html)
GET /sites/:site_id/weather_station(.json|html)
GET /sites/:site_id/season_sites(.json|html)
GET /sites/:site_id/gpx(.xml)
GET /sites/:site_id/image_upload(.html)

Schutzmaßnahme (protection_measure)

Diese rein informative Ressource beschreibt, wie an einem Standort Amphibien geschützt werden. Tempolimit, Zaun, Straßensperrung usw. sind mögliche Schutzmaßnahmen.

Standort-Saison (season_site)

Die gesamte Planung der Standortbetreuung wird pro Saison festgelegt. Jedes Jahr muss eine neue Saison eröffnet werden. So lässt sich auch Jahre später noch nachvollziehen, in welchem Jahr welche Maßnahmen getroffen wurden.

Kontrollgang (observation_session)

Ein Kontrollgang fasst zusammen, wer wann an welchem Standort welche Beobachtungen gemacht hat. Einzelbeobachtungen gibt es nicht, diese hängen immer zwingend an einem Kontrollgang. Kontrollgänge sind die kleinste planbare Einheit in Amphis. Pro Kontrollgang ist immer eine Person zuständig, es können aber beliebig viele Personen an deinem Kontrollgang teilnehmen.

Beobachtung (observation)

Eine Beobachtung fasst zusammen, wieviele gleichartige Tiere (Spezies, Geschlecht, Unterstandort) pro Kontrollgang gezählt wurden. Die Beobachtung ist die kleinste erfassbare Zähl-Einheit in Amphis. Pro Kontrollgang gibt es immer maximal eine Beobachtung mit identischen Spezies-Geschlecht-Unterstandort-Werten.

Person (person)

Der Name ist selbsterklärend. Amphis unterscheidet zwischen Person und Benutzer, damit auch Personen eingeplant werden können die selbst nicht bei Amphis angemeldet sind.

Benutzer (user)

Das Benutzerkonto, an dem Benutzername, E-Mailadresse, Kennwort-Hash usw. hängen. Ein Benutzer gehört zu genau einer Person.