Direkter API‑Einstieg: https://www.wissenschaft-trifft-kommune.de/api/posts
Übersicht
- Liste:
GET /api/posts
— paginierte Liste veröffentlichter Beiträge - Detail (Slug):
GET /api/posts/slug/{slug}
- Detail (ID):
GET /api/posts/{id}
Filter & Parameter
Unterstützte Query‑Parameter (kombinierbar):
q
Volltextsuche (Titel/Beschreibung/Tags)category
z. B.thesis
,project
,research
,internship
,student_job
,challenge
regions[]
Mehrfach, z. B.regions[]=dessau-rosslau
subject_areas[]
Mehrfach, z. B.subject_areas[]=digitalisierung
target_groups[]
Mehrfach, z. B.target_groups[]=students
page
Paginierung (Laravel Standard)
Beispiele
Liste abrufen
curl -s 'https://www.wissenschaft-trifft-kommune.de/api/posts'
Suche und Filter
curl -s 'https://www.wissenschaft-trifft-kommune.de/api/posts?q=bachelor&category=thesis®ions[]=dessau-rosslau'
Detail (Slug)
curl -s 'https://www.wissenschaft-trifft-kommune.de/api/posts/slug/BEISPIEL-SLUG'
Detail (ID)
curl -s 'https://www.wissenschaft-trifft-kommune.de/api/posts/123'
ETag / 304 (Caching)
Die API liefert einen ETag
. Clients können diesen wiederverwenden, um Bandbreite zu sparen.
# 1) Erste Abfrage – ETag extrahieren
ETAG=$(curl -is 'https://www.wissenschaft-trifft-kommune.de/api/posts' | awk '/^ETag:/ {print $2}' | tr -d '\r')
# 2) Mit If-None-Match erneut anfragen → 304, wenn unverändert
curl -i -H "If-None-Match: $ETAG" 'https://www.wissenschaft-trifft-kommune.de/api/posts'
Antwortstruktur (Auszug)
{
"data": [
{
"id": 123,
"slug": "beispiel-slug",
"title": "Beitragstitel",
"description": "Kurzbeschreibung …",
"category": "project",
"regions": ["dessau-rosslau"],
"subject_areas": ["digitalisierung"],
"target_groups": ["students"],
"published_at": "2025-08-01T10:00:00Z",
"expires_at": "2025-11-01"
}
],
"links": { "first": "...", "last": "...", "prev": null, "next": "..." },
"meta": { "current_page": 1, "last_page": 10, "per_page": 15, "total": 150 }
}
Limits & Sicherheit
- Rate‑Limit: 60 Anfragen pro Minute (IP‑basiert)
- CORS: nur Produktionsdomain
- Nur lesende Endpunkte (kein Schreiben)
Fragen oder Feedback? Bitte Kontakt über die Website.