Darstellung
API: core-business-entities
Ort:
work7_laendletech/docs/api/api-core-business-entities.md
Überblick
- Base-URL / Prefix:
/api/projects,/api/customers,/api/offers,/api/invoices,/api/rapport,/api/rapports,/api/appointments,/api/leave - Auth: Session via NextAuth
- Format: JSON
Endpoint(s)
GET /api/projects
Zweck:
Listet Projekte mit Pagination und Filterung.
Request
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
page | query number | nein | Seitennummer |
pageSize | query number | nein | Seitengroesse |
company | query string | nein | Firmenkontext |
q | query string | nein | Suche nach Nummer, Name, Kunde |
Response 200
json
{
"projects": [
{
"id": 1,
"project_number": "PR-1234-0001",
"name": "Sanierung Schule",
"status": "active"
}
],
"pageInfo": {
"page": 1,
"pageSize": 50,
"total": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}Fehler
| HTTP | Bedeutung | Body-Hinweis |
|---|---|---|
| 500 | Serverfehler | Standard-Error-Response |
POST /api/projects
Zweck:
Erstellt ein Projekt und generiert bei Bedarf automatisch eine Projektnummer.
PATCH /api/projects
Zweck:
Aktualisiert erlaubte Projektfelder auf Basis von id und updates.
GET|POST|PATCH /api/customers
Zweck:
Kundenlisten abrufen, Kunden anlegen und aktualisieren.
GET|POST|PATCH|DELETE /api/offers
Zweck:
Angebote listen, anlegen, aktualisieren und loeschen; Loeschung nur in bestimmten Statuspfaden.
GET /api/offers/[id]
Zweck:
Einzelnes Angebot laden.
GET|POST /api/offers/[id]/items
Zweck:
Positionsverwaltung pro Angebot.
POST /api/offers/[id]/send-email
Zweck:
Versendet ein Angebot per E-Mail.
GET|POST|DELETE /api/invoices
Zweck:
Rechnungen listen, anlegen und Draft-Rechnungen loeschen.
GET|PATCH|DELETE /api/invoices/[id]
Zweck:
Einzelne Rechnung abrufen, aktualisieren oder loeschen.
GET|POST|PATCH|DELETE /api/invoices/[id]/items
Zweck:
Rechnungspositionen verwalten.
POST /api/invoices/[id]/send
Zweck:
Rechnung versenden.
POST /api/invoices/[id]/pay
Zweck:
Zahlung oder Zahlungsstatus verarbeiten.
POST /api/invoices/from-offer
Zweck:
Erzeugt Rechnung aus Angebot.
POST /api/invoices/from-rapports
Zweck:
Erzeugt Rechnung aus Rapporten.
GET|POST|PUT|DELETE /api/rapport
Zweck:
Hauptendpunkt fuer Rapporte.
GET /api/rapports/[id]
Zweck:
Rapportdetails abrufen.
GET|POST|PUT /api/rapports/[id]/entries
Zweck:
Rapport-Eintraege listen und verwalten.
PUT|DELETE /api/rapports/[id]/entries/[entryId]
Zweck:
Spezifischen Eintrag aendern oder entfernen.
GET|POST|PUT /api/rapports/[id]/materials
Zweck:
Materialien pro Rapport verwalten.
PUT|DELETE /api/rapports/[id]/materials/[materialId]
Zweck:
Spezifisches Material aktualisieren oder loeschen.
POST /api/rapports/[id]/send-email
Zweck:
Rapport per E-Mail versenden.
GET|POST|PATCH /api/appointments
Zweck:
Termine listen, anlegen und aendern.
POST /api/appointments/[id]/status
Zweck:
Terminstatus aktualisieren.
POST /api/appointments/[id]/notifications
Zweck:
Termin-Benachrichtigungen ausloesen.
GET /api/appointments/capacity
Zweck:
Verfuegbarkeiten oder Kapazitaet berechnen.
GET|POST /api/leave/requests
Zweck:
Abwesenheitsantraege listen und einreichen.
POST /api/leave/requests/[id]/decision
Zweck:
Antrag genehmigen oder ablehnen.
Rate Limiting / Limits
- Max Requests: Nicht durchgaengig dokumentiert; Business-Endpunkte nutzen Standard-Sessionschutz
- Timeout: Standard Next.js Route Handler
- Max Payload: JSON, je nach Entitaet mittelgross
Breaking Changes / Versionierung
- Kein explizites API-Versioning; Aenderungen an Feldnamen oder Statuswerten sind potentiell breaking.
Beispiel (curl)
bash
curl -sS "http://localhost:3000/api/projects?page=1&pageSize=20" \
-H "Cookie: next-auth.session-token=..."Verwandte Notes
- Feature-Spec: work7
- OpenAPI/Schema:
/api/swagger
Follow-ups
- [ ] Postman Collection prüfen: passt es in bestehende Collection? Sonst neu anlegen →
work7_laendletech/src/postman/📅 2026-04-16 - [ ] In Feature-Spec verlinken falls zugehörig 📅 2026-04-16