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.
Die Tabellen nennen pro Ressource jeden Pfad, den zugehörigen HTTP-Verb, die akzeptierten Request-Content-Types (Akzeptiert) und die möglichen Response-Content-Types (Liefert). PATCH/PUT bezeichnet dieselbe Aktion und kann wahlweise verwendet werden. Ein — in der Akzeptiert-Spalte bedeutet, dass für diesen Verb kein Request-Body erwartet wird.
Verwendete Medientyp-Abkürzungen
formapplication/x-www-form-urlencodedmultipartmultipart/form-data(u.a. für Datei-Uploads)jsonapplication/jsonhtmltext/htmlxmlapplication/xmlcsvtext/csvxlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetpdfapplication/pdfdocxapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentpng,svgimage/png,image/svg+xmlgpxapplication/gpx+xmlgeojsonapplication/geo+jsonicstext/calendarturbotext/vnd.turbo-stream.html(Turbo-Stream-Updates)
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 /session/new. Ein erfolgreicher POST auf /session setzt ein signiertes session_id-Cookie, welches bei nachfolgenden Requests automatisch mitgesendet wird. Für den OGC-Teilbereich (/ogc/...) unterstützt Amphis alternativ HTTP Basic Auth mit einem subscription_token.
Zugriffsstufen
Für jede Ressource ist weiter unten angegeben, welche Zugriffsstufe für Lese- und Schreibzugriff erforderlich ist. Die Stufen sind:
- öffentlich
- ohne Login abrufbar.
- angemeldet
- beliebiger angemeldeter Benutzer.
- involviert
- angemeldeter Benutzer mit aktiver Standortzuordnung (
person_site) auf dem betroffenen Standort oder einem übergeordneten. - verantwortlich
- involvierter Benutzer mit Verantwortungs-Kennzeichnung.
- Standort-Admin
- als
admin_personeingetragene Person am Standort oder einem übergeordneten. - Administrator
- globaler Superuser (
is_superuser).
Zusätzlich steuern Sichtbarkeitsrichtlinien jedes Standorts (site_display_policy, observations_display_policy, people_display_policy) und die Bearbeitungsrichtlinie (site_edit_policy), ab welcher Stufe die jeweiligen Daten lesbar bzw. änderbar sind.
Haupt-Ressourcen
Standort (site)
Der Standort bezeichnet entweder einen echten
Zaunstandort oder eine übergeordnete Verwaltungsebene.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/sites | GET | — | html, json, xml, csv |
| POST | form, multipart, json | html, json | |
/sites/new | GET | — | html |
/sites/my | GET | — | html |
/sites/mobile_protocol_start | GET | — | html, turbo |
/sites/:id | GET | — | html, json, geojson |
| PATCH/PUT | form, multipart, json | html, json | |
| DELETE | — | html, json | |
/sites/:id/edit | GET | — | html |
/sites/:id/edit/szdb | GET | — | html |
/sites/:id/edit/visibility | GET | — | html |
/sites/:id/edit/current_season | GET | — | html |
/sites/:id/edit/planner | GET | — | html |
/sites/:id/new_subsite | GET | — | html |
/sites/:id/activate_planner | GET | — | html |
/sites/:id/activity | GET | — | html, json, csv |
/sites/:id/forecasts | GET | — | html, json, csv |
| PUT | form, json | html, json | |
/sites/:id/season_sites | GET | — | html |
/sites/:id/weather_station | GET | — | html, json |
/sites/:id/image_upload | GET | — | html |
/sites/:id/gpx | GET | — | gpx, xml |
| PATCH | multipart | html | |
/sites/:id/qrcode | GET | — | html, svg, png |
/sites/:id/chat | GET | — | html |
Zugriff: Lesen gemäß site_display_policy des Standorts (öffentlich bis verantwortlich); Anlegen, Ändern und Löschen durch Standort-Admin oder Administrator. Unterstandorte anlegen zusätzlich abhängig von site_edit_policy.
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.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/sites/:site_id/protection_measures | GET | — | html, json |
| POST | form, json | html, json | |
/sites/:site_id/protection_measures/new | GET | — | html |
/sites/:site_id/protection_measures/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json, turbo | |
/sites/:site_id/protection_measures/:id/edit | GET | — | html |
/sites/:site_id/protection_measures/:id/delete | GET | — | html, turbo |
Zugriff: Lesen analog zum Standort; Hinzufügen durch involvierte Nutzer gemäß site_edit_policy; Ändern und Löschen durch Standortverantwortliche oder Administrator.
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.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/season_sites | GET | — | html, json |
| POST | form, json | html, json | |
/season_sites/new | GET | — | html |
/season_sites/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/season_sites/:id/edit | GET | — | html |
/season_sites/:id/finish | GET | — | html |
/sites/:site_id/season_sites | GET | — | html, json |
| POST | form, json | html, json | |
/sites/:site_id/season_sites/new | GET | — | html |
/sites/:site_id/season_sites/step1_new … step4_new | GET | — | html |
/sites/:site_id/season_sites/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/sites/:site_id/season_sites/:id/edit | GET | — | html |
Zugriff: Lesen gemäß Sichtbarkeitsrichtlinie des Standorts; Anlegen, Ändern und Abschließen durch Standortverantwortliche oder Administrator.
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.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/observation_sessions | GET | — | html, json, csv, xlsx, ics |
| POST | form, json | html, json | |
/observation_sessions/new | GET | — | html |
/observation_sessions/weeks | GET | — | html |
/observation_sessions/todays | GET | — | html |
/observation_sessions/all | GET | — | html |
/observation_sessions/my | GET | — | html |
/observation_sessions/:id | GET | — | html, json |
| PATCH/PUT | form, multipart, json | html, json | |
| DELETE | — | html, json, turbo | |
/observation_sessions/:id/edit | GET | — | html |
/observation_sessions/:id/cancel | GET | — | html |
/observation_sessions/:observation_session_id/mobile_protocol | GET | — | html |
/sites/:site_id/observation_sessions | GET | — | html, json, csv, xlsx |
| POST | form, multipart, json | html, json | |
/sites/:site_id/observation_sessions/new | GET | — | html |
/sites/:site_id/observation_sessions/weeks | GET | — | html |
/sites/:site_id/observation_sessions/:id | GET | — | html, json |
| PATCH/PUT | form, multipart, json | html, json | |
| DELETE | — | html, json, turbo | |
/sites/:site_id/observation_sessions/:id/edit | GET | — | html |
/sites/:site_id/observation_sessions/:id/delete | GET | — | html |
/sites/:site_id/observation_sessions/:id/protocol | GET | — | html, pdf, docx |
/sites/:site_id/observation_sessions/:id/plan | GET | — | html |
/sites/:site_id/observation_sessions/:id/apply | GET | — | html, turbo |
/sites/:site_id/observation_sessions/:id/spreadsheet | GET | — | xlsx, csv |
/sites/:site_id/observation_sessions/:id/image_upload | GET | — | html |
/sites/:site_id/observation_sessions/:id/select_person | GET | — | html |
/sites/:site_id/observation_sessions/:observation_session_id/mobile_protocol[_help|_finish] | GET | — | html |
Zugriff: Lesen gemäß observations_display_policy des Standorts; Anlegen durch Standortverantwortliche und involvierte Nutzer; Protokoll-Erfassung durch zuständige oder mitwirkende Person; Löschen durch zuständige Person oder Administrator.
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.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/observations | GET | — | html, json, csv, xlsx |
| POST | form, json | html, json | |
/observations/new | GET | — | html |
/observations/determination | GET | — | html |
/observations/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/observations/:id/edit | GET | — | html |
Zugriff: Lesen analog zum zugehörigen Kontrollgang; Anlegen und Ändern durch Eingebende oder Standortverantwortliche; Löschen durch Eingebende oder Administrator.
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.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/people | GET | — | html, json |
| POST | form, multipart, json | html, json | |
/people/new | GET | — | html |
/people/edit_self | GET | — | html |
/people/edit_password | GET | — | html |
/people/with_user, /with_sites, /responsible, /site_admins, /planner_persons, /invited, /without_data, /spam, /legit | GET | — | html, json |
/people/:id | GET | — | html, json, turbo |
| PATCH/PUT | form, multipart, json | html, json | |
| DELETE | — | html, json, turbo | |
/people/:id/edit | GET | — | html |
/people/:id/delete | GET | — | html |
/people/:id/statistics | GET | — | html |
/people/:id/attachments | GET | — | html |
/people/:id/foena | GET | — | pdf, docx |
Zugriff: Einzelansicht für angemeldete Nutzer mit eingeschränkten Angaben; Telefonnummer und E-Mail nur für Standort-Teilnehmende bzw. -Verantwortliche; vollständige Liste, erweiterter Filter und Bearbeiten nur durch Administrator.
Authentifizierung
Seit Amphis 2026.x läuft Authentifizierung über native Rails-Mechanismen; Devise-Pfade wie /users/sign_in oder /users/password existieren nicht mehr. Die folgenden Pfade umfassen Login, Registrierung, Kennwort-Zurücksetzen und E-Mail-Bestätigung.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/session/new | GET | — | html |
/session | POST | form | html |
| DELETE | — | html | |
/registration/new | GET | — | html |
/registration | POST | form | html |
| PATCH/PUT | form | html | |
| DELETE | — | html | |
/registration/edit | GET | — | html |
/passwords/new | GET | — | html |
/passwords | POST | form | html |
/passwords/:token/edit | GET | — | html |
/passwords/:token | PATCH/PUT | form | html |
/confirmation/new | GET | — | html |
/confirmation | GET | — | html |
| POST | form | html |
Zugriff: Alle Auth-Pfade sind ohne vorherigen Login erreichbar. Nach erfolgreichem Login setzt Amphis ein signiertes session_id-Cookie, das bei Angemeldet bleiben
dauerhaft gespeichert wird. Token für Kennwort-Reset sind 6 Stunden gültig und werden durch jede erfolgreiche Kennwort-Änderung entwertet; Token zur E-Mail-Bestätigung sind 7 Tage gültig und können nur einmal verwendet werden. Alternativ zum Cookie-basierten Flow unterstützt der OGC-Teilbereich (/ogc/...) HTTP Basic Auth mit einem subscription_token.
Benutzer (user)
Das Benutzerkonto, an dem Benutzername, E-Mailadresse, Kennwort-Hash usw. hängen. Ein Benutzer gehört zu genau einer Person.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/users | GET | — | html, json |
| POST | form, json | html, json | |
/users/new | GET | — | html |
/users/accepted_terms, /active, /without_person, /without_logins, /spam, /legit | GET | — | html |
/users/impersonation | DELETE | — | html |
/users/:id | GET | — | html, json, turbo |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json, turbo | |
/users/:id/edit | GET | — | html |
/users/:id/delete | GET | — | html |
/user (eigenes Konto) | GET | — | html |
| PATCH/PUT | form, multipart, json | html, json | |
| DELETE | — | html, json | |
/user/cancel | GET | — | html |
/user/privacy_policy | GET | — | html |
| PUT | form | html | |
/user/usage_policy | GET | — | html |
| PUT | form | html |
Zugriff: Eigenes Konto durch den Benutzer selbst bearbeitbar; Liste, Anlegen, Bearbeiten, Löschen und Impersonation ausschließlich durch Administrator.
Weitere Ressourcen
Saison (season)
Kalenderjahr-basiertes Zeitfenster, innerhalb dessen Standortbetreuungen geplant und Beobachtungen aggregiert werden. Saisons werden beim ersten Zugriff im jeweiligen Jahr automatisch angelegt.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/seasons | GET | — | html, json |
| POST | form, json | html, json | |
/seasons/new | GET | — | html |
/seasons/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/seasons/:id/edit | GET | — | html |
Zugriff: ausschließlich Administrator. Die Controller-Implementierung ist aktuell leer, die Pfade liefern daher noch keine Inhalte aus.
Saison-Aggregat (season_observation)
Pro Standort-Saison aggregierte Beobachtungswerte (Anzahl pro Spezies und Geschlecht) zum schnellen Abruf und für SZDB-Abgleich.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/sites/:site_id/season_observations | GET | — | html, json, xml, csv, xlsx |
| POST | form, json | html, json | |
| PUT | form, json | html, json |
Zugriff: Lesen gemäß observations_display_policy; Ändern durch Standort-Admin oder Administrator.
Aspekt (aspect)
Merkmalsdimension, nach der Beobachtungen kategorisiert werden (z.B. Spezies, Geschlecht, Unterstandort). Wird global verwaltet und jedem Standort zugeordnet.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/aspects | GET | — | html, json |
| POST | form, json | html, json | |
/aspects/new | GET | — | html |
/aspects/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/aspects/:id/edit | GET | — | html |
Zugriff: Lesen für angemeldete Nutzer; Anlegen, Ändern und Löschen nur durch Administrator.
Aspekt-Wert (aspect_value)
Konkrete Ausprägung eines Aspekts, z.B. Erdkröte
, Grasfrosch
, Männchen
. Jeder Aspekt-Wert gehört zu genau einem Aspekt.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/aspects/:aspect_id/aspect_values | GET | — | html, json |
| POST | form, json | html, json | |
/aspects/:aspect_id/aspect_values/new | GET | — | html |
/aspects/:aspect_id/aspect_values/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/aspects/:aspect_id/aspect_values/:id/edit | GET | — | html |
Zugriff: Lesen für angemeldete Nutzer; Anlegen, Ändern und Löschen nur durch Administrator.
Standort-Aspekt (aspect_site)
Verknüpfung zwischen Aspekt und Standort. Legt fest, welche Merkmalsdimensionen an einem Standort überhaupt erfasst werden.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/aspect_sites | GET | — | html, json |
| POST | form, json | html, json | |
/aspect_sites/new | GET | — | html |
/aspect_sites/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/aspect_sites/:id/edit | GET | — | html |
Zugriff: Lesen durch Nutzer mit Standortbezug; Schreiben durch Standortverantwortliche oder Administrator.
Standort-Aspektwert (aspect_value_site)
Per-Standort hinterlegte Auswahl an Aspekt-Werten, etwa welche Spezies dort konkret beobachtet werden und in welcher Reihenfolge diese im Protokoll erscheinen.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/aspect_value_sites | GET | — | html, json |
| POST | form, json | html, json | |
/aspect_value_sites/new | GET | — | html |
/aspect_value_sites/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/aspect_value_sites/:id/edit | GET | — | html |
/sites/:site_id/aspect_values | GET | — | html, json |
| POST | form, json | html, json, turbo | |
/sites/:site_id/aspect_values/new | GET | — | html |
/sites/:site_id/aspect_values/order | PUT | form, json | json, turbo |
/sites/:site_id/aspect_values/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json, turbo | |
| DELETE | — | html, json, turbo | |
/sites/:site_id/aspect_values/:id/edit | GET | — | html |
/sites/:site_id/aspect_values/:id/delete | GET | — | html |
Zugriff: Lesen durch Nutzer mit Standortbezug; Anlegen, Sortieren und Löschen durch involvierte Nutzer sowie durch Standort-Admin und Administrator.
Anhang (attachment)
Datei- und Bildanhänge zu Kontrollgängen, Personen, Standorten und Taxa.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/attachments | GET | — | html |
| POST | multipart | html, json | |
/attachments/new | GET | — | html |
/attachments/:id | GET | — | html, json |
| PATCH/PUT | form, multipart, json | html, json | |
| DELETE | — | html, turbo | |
/attachments/:id/edit | GET | — | html |
Zugriff: Lesen im Kontext der jeweils zugehörigen Ressource; Löschen einzelner Anhänge durch Ersteller oder am zugehörigen Standort involvierte Nutzer; Gesamtliste nur für Administrator.
News-Eintrag (news_entry)
Redaktionelle Mitteilung, entweder global oder standortbezogen.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/news_entries | GET | — | html, json |
| POST | form, json | html, json, turbo | |
/news_entries/new | GET | — | html, turbo |
/news_entries/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, turbo | |
/news_entries/:id/edit | GET | — | html |
/news_entries/:id/delete | GET | — | html, turbo |
/sites/:site_id/news_entries | GET | — | html, json |
| POST | form, json | html, json, turbo | |
/sites/:site_id/news_entries/new | GET | — | html, turbo |
/sites/:site_id/news_entries/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, turbo | |
/sites/:site_id/news_entries/:id/edit | GET | — | html |
Zugriff: Lesen globaler Einträge öffentlich; Lesen standortbezogener Einträge gemäß Sichtbarkeitsrichtlinie; Anlegen, Ändern und Löschen standortbezogener Einträge durch Standortverantwortliche, globale Einträge nur durch Administrator.
Benachrichtigungseinstellung (notification_setting)
Pro Benutzer konfigurierbare Aktivierung einzelner Benachrichtigungstypen (E-Mail).
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/notification_settings | GET | — | html |
/notification_settings/:id/unsubscribe/:token | GET | — | text/plain |
| POST | form | text/plain | |
/users/:user_id/notification_settings | GET | — | html |
| POST | form, json | html, json | |
/users/:user_id/notification_settings/new | GET | — | html |
/users/:user_id/notification_settings/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/users/:user_id/notification_settings/:id/edit | GET | — | html |
Zugriff: nur der Benutzer selbst; Administrator hat lesenden Zugriff im Rahmen der Benutzerverwaltung. Der RFC-8058-Abbestell-Endpunkt ist öffentlich und nur per signiertem Token nutzbar.
Persönliche Einstellungen (personal_preference)
Pro Benutzer gespeicherte UI-Voreinstellungen (etwa Sortier- und Anzeige-Optionen). Singuläre Ressource je Benutzer.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/personal_preference | GET | — | html, json |
| POST | form, json | html, json | |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/personal_preference/new | GET | — | html |
/personal_preference/edit | GET | — | html |
Zugriff: ausschließlich der Benutzer selbst.
Standort-Zuordnung (person_site)
Zuordnung einer Person zu einem Standort mit Gültigkeitszeitraum, Verantwortlichkeits- und Abonnement-Status. Grundlage der Zugriffsstufe involviert
.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/person_sites | GET | — | html, json |
| POST | form, json | html, json, turbo | |
/person_sites/new | GET | — | html |
/person_sites/current, /inactive, /following | GET | — | html |
/person_sites/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json, turbo | |
| DELETE | — | html, json, turbo | |
/person_sites/:id/edit | GET | — | html |
/person_sites/:id/accept | GET | — | html |
| PATCH | form, json | html | |
/people/:person_id/person_sites | GET | — | html, json |
| POST | form, json | html, json, turbo | |
/people/:person_id/person_sites/new | GET | — | html |
/people/:person_id/person_sites/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json, turbo | |
| DELETE | — | html, json, turbo | |
/people/:person_id/person_sites/:id/edit | GET | — | html |
/sites/:site_id/person_sites | GET | — | html, json |
| POST | form, json | html, json, turbo | |
/sites/:site_id/person_sites/new | GET | — | html |
/sites/:site_id/person_sites/current, /inactive, /following, /apply, /invite | GET | — | html, turbo |
/sites/:site_id/person_sites/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json, turbo | |
| DELETE | — | html, json, turbo | |
/sites/:site_id/person_sites/:id/edit | GET | — | html |
/sites/:site_id/person_sites/:id/delete | GET | — | html |
Zugriff: Lesen durch Nutzer mit Standortbezug; Anlegen und Einladen durch Standortverantwortliche oder Standort-Admin; Annehmen oder Ablehnen von Einladungen durch die eingeladene Person; übergreifende Liste und Verwaltung nur durch Administrator.
Planungs-Person (planner_person)
Platzhalter für eine Person in der Einsatzplanung, die selbst (noch) kein Benutzerkonto bei Amphis besitzt. Kann später per Einladung in ein echtes Benutzerkonto umgewandelt werden.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/planner_people | GET | — | html, json |
| POST | form, json | html, json | |
/planner_people/new | GET | — | html |
/planner_people/accept | GET | — | html |
| PATCH | form, json | html | |
/planner_people/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/planner_people/:id/edit | GET | — | html |
/sites/:site_id/planner_people | GET | — | html, json |
| POST | form, json | html, json | |
/sites/:site_id/planner_people/new | GET | — | html |
/sites/:site_id/planner_people/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/sites/:site_id/planner_people/:id/edit | GET | — | html |
/sites/:site_id/planner_people/:id/invite | GET | — | html |
Zugriff: Anlegen und Verwalten durch Nutzer mit Sonderberechtigung create_planner_people sowie durch Standortverantwortliche; Einladung zu einem echten Konto durch Administrator.
Standort-Schutzmaßnahme (site_protection_measure)
Instanz einer Schutzmaßnahme an einem konkreten Standort inklusive Gültigkeitszeitraum und Kontaktperson.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/sites/:site_id/site_protection_measures | GET | — | html, json |
| POST | form, json | html, json | |
/sites/:site_id/site_protection_measures/new | GET | — | html |
/sites/:site_id/site_protection_measures/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json, turbo | |
/sites/:site_id/site_protection_measures/:id/edit | GET | — | html |
/sites/:site_id/site_protection_measures/:id/delete | GET | — | html |
Zugriff: Lesen gemäß Sichtbarkeitsrichtlinie des Standorts; Anlegen, Ändern und Löschen durch Standortverantwortliche oder Administrator.
Kontrollgang-Teilnehmer (observation_session_person)
Zuordnung einer Person zu einem Kontrollgang als Mitwirkende neben der zuständigen Person.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/observation_session_people | GET | — | html, json |
| POST | form, json | html, json | |
/observation_session_people/new | GET | — | html |
/observation_session_people/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/observation_session_people/:id/edit | GET | — | html |
Zugriff: Verwaltung durch die zuständige Person des Kontrollgangs, durch den Teilnehmer selbst sowie durch Standortverantwortliche oder Administrator.
Abonnement-Token (subscription_token)
API-Token zum HTTP-Basic-Auth-Zugriff ohne Session-Cookie, etwa für externe Skripte oder OGC-Clients.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/subscription_tokens | GET | — | html |
| POST | form, json | html, json | |
/subscription_tokens/:id | DELETE | — | html, json |
/users/:user_id/subscription_tokens | GET | — | html, json |
| POST | form, json | html, json | |
/users/:user_id/subscription_tokens/new | GET | — | html |
/users/:user_id/subscription_tokens/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/users/:user_id/subscription_tokens/:id/edit | GET | — | html |
Zugriff: Anlegen und Löschen eigener Tokens durch angemeldete Nutzer; Verwaltung fremder Tokens durch Administrator.
Taxon (taxon)
Knoten im biologischen Klassifikationsbaum: Klasse, Ordnung, Familie, Gattung, Art. Wird zur Zuordnung von Aspekt-Werten zu Spezies genutzt.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/taxa | GET | — | html, json |
| POST | form, multipart, json | html, json | |
/taxa/new | GET | — | html |
/taxa/:id | GET | — | html, json |
| PATCH/PUT | form, multipart, json | html, json | |
| DELETE | — | html, json | |
/taxa/:id/edit | GET | — | html |
/taxa/:id/delete | GET | — | html |
Zugriff: Lesen öffentlich; Anlegen, Ändern und Löschen nur durch Administrator.
Wetterstation (weather_station)
Externe Wetterstation, die einem Standort als Datenquelle zugewiesen werden kann und historische sowie aktuelle Wetterdaten zur Aktivitätsauswertung liefert.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/weather_stations | GET | — | html, json |
| POST | form, json | html, json | |
/weather_stations/new | GET | — | html |
/weather_stations/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/weather_stations/:id/edit | GET | — | html |
/weather_stations/:id/fetch | GET | — | html |
Zugriff: ausschließlich Administrator.
Chat-Raum (chat_room), Chat-Nachricht (chat_message), Chat-Mitgliedschaft (chat_room_person)
Einfache Chat-Funktion, üblicherweise mit einem Standort verknüpft. Chat-Mitgliedschaften regeln, wer einen Raum lesen und darin schreiben darf.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/chat_rooms | GET | — | html, json |
| POST | form, json | html, json, turbo | |
/chat_rooms/new | GET | — | html |
/chat_rooms/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json, turbo | |
| DELETE | — | html, json | |
/chat_rooms/:id/edit | GET | — | html |
/chat_messages | GET | — | html, json |
| POST | form, json | html, json, turbo | |
/chat_messages/new | GET | — | html |
/chat_messages/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json, turbo | |
| DELETE | — | html, json, turbo | |
/chat_messages/:id/edit | GET | — | html |
/chat_room_people | GET | — | html, json |
| POST | form, json | html, json | |
/chat_room_people/new | GET | — | html |
/chat_room_people/:id | GET | — | html, json |
| PATCH/PUT | form, json | html, json | |
| DELETE | — | html, json | |
/chat_room_people/:id/edit | GET | — | html |
Zugriff: Lesen und Schreiben nur für Mitglieder des jeweiligen Chat-Raums; Verwaltung der eigenen Mitgliedschaft durch die betreffende Person selbst; Räume anlegen und Mitgliedschaften Dritter verwalten nur durch Administrator.
Impersonation (impersonation)
Ermöglicht einem Administrator, temporär im Namen eines anderen Benutzers zu agieren, um Fehler zu reproduzieren oder Benutzer zu unterstützen.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/users/impersonation | DELETE | — | html |
/users/:user_id/impersonation | GET | — | html |
| POST | form | html | |
| PATCH/PUT | form | html | |
| DELETE | — | html | |
/users/:user_id/impersonation/new | GET | — | html |
/users/:user_id/impersonation/edit | GET | — | html |
Zugriff: ausschließlich Administrator; Impersonation des eigenen Kontos ist nicht erlaubt.
OGC API Features
Amphis bietet zusätzlich einen Endpunkt gemäß OGC-API-Features (GeoJSON-basierter Zugriff auf Standorte und Beobachtungen) unter /ogc/.
| Pfad | Verb | Akzeptiert | Liefert |
|---|---|---|---|
/ogc | GET | — | json |
/ogc/api | GET | — | json |
/ogc/conformance | GET | — | json |
/ogc/collections | GET | — | json |
| POST | json | json | |
/ogc/collections/:id | GET | — | json |
| PATCH/PUT | json | json | |
| DELETE | — | json | |
/ogc/collections/sites/schema | GET | — | json |
/ogc/collections/observations/schema | GET | — | json |
/ogc/collections/sites/items | GET | — | json, geojson |
| POST | json, geojson | json, geojson | |
| OPTIONS | — | geojson | |
/ogc/collections/sites/items/:id | GET | — | json, geojson |
| PATCH/PUT | json, geojson | json, geojson | |
| DELETE | — | json, geojson | |
| OPTIONS | — | geojson | |
/ogc/collections/observations/items | GET | — | json, geojson |
| POST | json, geojson | json, geojson | |
| OPTIONS | — | geojson | |
/ogc/collections/observations/items/:id | GET | — | json, geojson |
| PATCH/PUT | json, geojson | json, geojson | |
| DELETE | — | json, geojson | |
| OPTIONS | — | geojson |
Zugriff: Lesen der öffentlichen Collections ohne Login möglich; Schreibzugriff nur per HTTP-Basic-Auth mit gültigem Abonnement-Token. Sichtbarkeitsrichtlinien der zugrundeliegenden Standorte und Beobachtungen werden angewendet.