Blog-Tags
Die Blog Tags API ermöglicht das Verwalten von Tags zur Kategorisierung von Blog-Einträgen.
Endpunkte
| Methode | Endpunkt | Beschreibung |
|---|
GET | /api/v1/blog/tags | Alle Tags auflisten |
POST | /api/v1/blog/tags | Neuen Tag erstellen |
Das Tag-Objekt
{
"id": "tag_abc123",
"projectId": "proj_xyz789",
"name": "webdesign",
"slug": "webdesign",
"displayName": {
"de": "Webdesign",
"en": "Web Design"
},
"description": {
"de": "Artikel über Webdesign und UI/UX",
"en": "Articles about web design and UI/UX"
},
"color": "#3b82f6",
"entryCount": 15,
"createdAt": "2026-01-10T08:00:00Z",
"updatedAt": "2026-01-22T12:00:00Z"
}
Attribute
| Attribut | Typ | Beschreibung |
|---|
id | string | Eindeutige Tag-ID |
projectId | string | Zugehöriges Blog-Projekt |
name | string | Interner Name (Kleinbuchstaben) |
slug | string | URL-Slug |
displayName | object | Anzeigename (mehrsprachig) |
description | object | Beschreibung (mehrsprachig) |
color | string | Farbcode für UI-Darstellung |
entryCount | integer | Anzahl zugehöriger Einträge |
createdAt | string | Erstellungszeitpunkt |
updatedAt | string | Letzte Aktualisierung |
Query-Parameter
| Parameter | Typ | Default | Beschreibung |
|---|
projectId | string | Pflicht | Blog-Projekt-ID |
search | string | – | Suche im Namen |
sortBy | string | name | name, entryCount, createdAt |
sortOrder | string | asc | asc, desc |
Beispiel-Request
curl -X GET "https://api.codefluss.com/v1/blog/tags?projectId=proj_xyz789" \
-H "Authorization: Bearer cf_live_abc123..."
Beispiel-Response
{
"success": true,
"data": [
{
"id": "tag_001",
"name": "design",
"slug": "design",
"displayName": { "de": "Design", "en": "Design" },
"color": "#8b5cf6",
"entryCount": 23
},
{
"id": "tag_002",
"name": "entwicklung",
"slug": "entwicklung",
"displayName": { "de": "Entwicklung", "en": "Development" },
"color": "#10b981",
"entryCount": 18
},
{
"id": "tag_003",
"name": "news",
"slug": "news",
"displayName": { "de": "Neuigkeiten", "en": "News" },
"color": "#f59e0b",
"entryCount": 12
}
]
}
Tag erstellen
Request-Body
{
"projectId": "proj_xyz789",
"name": "tutorial",
"displayName": {
"de": "Tutorial",
"en": "Tutorial"
},
"description": {
"de": "Schritt-für-Schritt Anleitungen",
"en": "Step-by-step guides"
},
"color": "#06b6d4"
}
Pflichtfelder
| Feld | Typ | Beschreibung |
|---|
projectId | string | Ziel-Blog-Projekt |
name | string | Interner Name (Kleinbuchstaben, ohne Leerzeichen) |
Optionale Felder
| Feld | Typ | Default | Beschreibung |
|---|
displayName | object | name | Anzeigename |
description | object | – | Beschreibung |
color | string | #6b7280 | Hex-Farbcode |
Response
{
"success": true,
"data": {
"id": "tag_def456",
"name": "tutorial",
"slug": "tutorial",
"displayName": { "de": "Tutorial", "en": "Tutorial" },
"color": "#06b6d4",
"entryCount": 0,
"createdAt": "2026-01-23T10:00:00Z"
}
}
Beim Erstellen oder Aktualisieren eines Blog-Eintrags können Tags als Array von Namen angegeben werden:
{
"title": { "de": "Mein Artikel" },
"slug": "mein-artikel",
"tags": ["design", "tutorial", "news"]
}
Nicht existierende Tags werden automatisch erstellt.
Tag-Cloud generieren
Für eine Tag-Cloud können Sie die Tags nach entryCount sortieren:
GET /api/v1/blog/tags?projectId=proj_xyz789&sortBy=entryCount&sortOrder=desc
JavaScript-Beispiel
interface Tag {
name: string;
entryCount: number;
}
function calculateTagWeight(tag: Tag, allTags: Tag[]): number {
const max = Math.max(...allTags.map(t => t.entryCount));
const min = Math.min(...allTags.map(t => t.entryCount));
if (max === min) return 1;
// Gewicht zwischen 1 und 5
return 1 + ((tag.entryCount - min) / (max - min)) * 4;
}
Fehler
| Code | Beschreibung |
|---|
400 | Ungültiger Tag-Name |
401 | Nicht authentifiziert |
403 | Keine Berechtigung |
409 | Tag-Name bereits vergeben |
Nächste Schritte