Zum Inhalt springen
Barynt v1.0.12

Views

REST-API: Gespeicherte Views und die Issues, die eine View zeigt.

Eine View speichert Filter, Gruppierung und Sortierung unter einem Namen. Ihr Filter nutzt die Filtersprache. Jeder Aufruf braucht den genannten Scope und einen Key (oder ein Token) von jemandem, der das in der App darf. Siehe Anmeldung und Grundlagen.

GET /api/v1/projects/{id}/views

Scope: views:read

Listet die gespeicherten Views eines Projekts, die du siehst — geteilte und deine eigenen privaten, in Tab-Reihenfolge.

Pfad-Parameter

NameTypPflichtBeschreibung
idstringjaDie ID des Projekts.

Beispiel

Terminal window
curl "$BARYNT_URL/api/v1/projects/$PROJECT_ID/views" \
-H "Authorization: Bearer $BARYNT_API_KEY"

Antwort

{
"data": [
{
"id": "v_3c9d1e",
"name": "Urgent bugs",
"slug": "urgent-bugs",
"systemKey": null,
"workspaceId": "ws_1a2b3c",
"project": { "id": "proj_9f8e7d", "name": "Website Relaunch" },
"owner": { "id": "u_7h3j2k", "name": "Priya Shah", "handle": "priya" },
"visibility": "PROJECT",
"layout": "list",
"icon": null,
"color": "#e05252",
"filter": {
"op": "and",
"rules": [
{ "field": "type", "is": "any", "value": ["bug"] },
{ "field": "priority", "is": "gte", "value": 3 },
{ "field": "assignee", "is": "any", "value": ["@me"] }
]
},
"groupBy": "status",
"subGroupBy": null,
"sortBy": "priority",
"sortDir": "desc",
"createdAt": "2026-10-01T09:00:00.000Z",
"updatedAt": "2026-10-12T14:20:00.000Z",
"canEdit": true
}
]
}

GET /api/v1/workspaces/{id}/views

Scope: views:read

Listet die projektübergreifenden Views eines Workspace, die du siehst, samt den eingebauten “My issues” und “Created by me” (mit systemKey; sie lassen sich nicht ändern).

Pfad-Parameter

NameTypPflichtBeschreibung
idstringjaDie ID des Workspace.

Beispiel

Terminal window
curl "$BARYNT_URL/api/v1/workspaces/$WORKSPACE_ID/views" \
-H "Authorization: Bearer $BARYNT_API_KEY"

Antwort

{
"data": [
{
"id": "v_8a1b2c",
"name": "My issues",
"slug": "my-issues",
"systemKey": "my-issues",
"project": null,
"owner": null,
"visibility": "WORKSPACE",
"layout": "list",
"filter": { "op": "and", "rules": [] },
"canEdit": false
}
]
}

GET /api/v1/views/{id}

Scope: views:read

Holt eine View: Filterbaum, Layout, Gruppierung und Sortierung. “@me” bleibt im Filter so stehen — es meint, wer fragt.

Pfad-Parameter

NameTypPflichtBeschreibung
idstringjaDie ID der View.

Beispiel

Terminal window
curl "$BARYNT_URL/api/v1/views/$VIEW_ID" \
-H "Authorization: Bearer $BARYNT_API_KEY"

Antwort

{
"data": {
"id": "v_3c9d1e",
"name": "Urgent bugs",
"slug": "urgent-bugs",
"systemKey": null,
"workspaceId": "ws_1a2b3c",
"project": { "id": "proj_9f8e7d", "name": "Website Relaunch" },
"owner": { "id": "u_7h3j2k", "name": "Priya Shah", "handle": "priya" },
"visibility": "PROJECT",
"layout": "list",
"icon": null,
"color": "#e05252",
"filter": {
"op": "and",
"rules": [
{ "field": "type", "is": "any", "value": ["bug"] },
{ "field": "priority", "is": "gte", "value": 3 },
{ "field": "assignee", "is": "any", "value": ["@me"] }
]
},
"groupBy": "status",
"subGroupBy": null,
"sortBy": "priority",
"sortDir": "desc",
"createdAt": "2026-10-01T09:00:00.000Z",
"updatedAt": "2026-10-12T14:20:00.000Z",
"canEdit": true
}
}

GET /api/v1/views/{id}/issues

Scope: views:read

Die Issues einer View, so wie du sie in der App siehst: ihr Filter mit deinem @me, ihr Projekt (bei einer projektübergreifenden View deine sichtbaren Projekte) und die feste Bedingung einer eingebauten View. Neueste zuerst, seitenweise mit Cursor. Braucht zusätzlich issues:read.

Pfad-Parameter

NameTypPflichtBeschreibung
idstringjaDie ID der View.

Query-Parameter

NameTypPflichtBeschreibung
fieldsstringKommagetrennte Liste der Felder, die zurückkommen sollen.
cursorstringDer nextCursor der vorigen Seite.
limitintegerSeitengröße 1–100. Standard 25.

Beispiel

Terminal window
curl "$BARYNT_URL/api/v1/views/$VIEW_ID/issues" \
-H "Authorization: Bearer $BARYNT_API_KEY"

Antwort

{
"data": [
{ "id": "i_4k2n1x", "ref": "WEB-42", "title": "Fix broken checkout flow", "status": "in_progress", "statusCategory": "started" }
],
"nextCursor": null
}

POST /api/v1/projects/{id}/views

Scope: views:write

Speichert eine View in einem Projekt. Privat, wenn visibility nichts anderes sagt.

Pfad-Parameter

NameTypPflichtBeschreibung
idstringjaDie ID des Projekts.

Body

NameTypPflichtBeschreibung
namestringjaBis zu 80 Zeichen.
layout"board" | "list" | "dashboard"ja
visibility"PRIVATE" | "PROJECT" | "WORKSPACE"Standard PRIVATE (nur du). PROJECT für eine Projekt-View, WORKSPACE für eine projektübergreifende — Teilen braucht das Recht view.share.
filterobjectEin Filterbaum — siehe Filter.
groupBystring | nullstatus, priority, assignee, type, label, project …
sortBystringmanual, priority, created, updated, dueDate …
sortDir"asc" | "desc"
iconstring | null
colorstring | nullEine Hex-Farbe.

Beispiel

Terminal window
curl -X POST "$BARYNT_URL/api/v1/projects/$PROJECT_ID/views" \
-H "Authorization: Bearer $BARYNT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Urgent bugs", "layout": "list", "visibility": "PROJECT", "filter": { "op": "and", "rules": [{ "field": "priority", "is": "gte", "value": 3 }] }, "sortBy": "priority", "sortDir": "desc" }'

Anfrage

{
"name": "Urgent bugs",
"layout": "list",
"visibility": "PROJECT",
"filter": {
"op": "and",
"rules": [{ "field": "priority", "is": "gte", "value": 3 }]
},
"sortBy": "priority",
"sortDir": "desc"
}

Antwort

// 201 Created
{
"data": { "id": "v_3c9d1e", "name": "Urgent bugs", "…": "…" }
}

POST /api/v1/workspaces/{id}/views

Scope: views:write

Speichert eine projektübergreifende View in einem Workspace. Gleicher Body wie bei einem Projekt; visibility ist PRIVATE oder WORKSPACE.

Pfad-Parameter

NameTypPflichtBeschreibung
idstringjaDie ID des Workspace.

Body

NameTypPflichtBeschreibung
namestringjaBis zu 80 Zeichen.
layout"board" | "list" | "dashboard"ja
visibility"PRIVATE" | "PROJECT" | "WORKSPACE"Standard PRIVATE (nur du). PROJECT für eine Projekt-View, WORKSPACE für eine projektübergreifende — Teilen braucht das Recht view.share.
filterobjectEin Filterbaum — siehe Filter.
groupBystring | nullstatus, priority, assignee, type, label, project …
sortBystringmanual, priority, created, updated, dueDate …
sortDir"asc" | "desc"
iconstring | null
colorstring | nullEine Hex-Farbe.

Beispiel

Terminal window
curl -X POST "$BARYNT_URL/api/v1/workspaces/$WORKSPACE_ID/views" \
-H "Authorization: Bearer $BARYNT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Urgent bugs", "layout": "list", "visibility": "WORKSPACE", "filter": { "op": "and", "rules": [{ "field": "priority", "is": "gte", "value": 3 }] }, "sortBy": "priority", "sortDir": "desc" }'

Anfrage

{
"name": "Urgent bugs",
"layout": "list",
"visibility": "WORKSPACE",
"filter": {
"op": "and",
"rules": [{ "field": "priority", "is": "gte", "value": 3 }]
},
"sortBy": "priority",
"sortDir": "desc"
}

Antwort

// 201 Created
{
"data": { "id": "v_5e7f8a", "name": "Urgent bugs", "…": "…" }
}

PATCH /api/v1/views/{id}

Scope: views:write

Ändert eine View — nur die Felder, die du schickst. Private Views: ihr Besitzer. Geteilte Views: ihr Ersteller, solange er view.share hat, oder jeder mit view.manage; sonst 403. Nur der Ersteller kann eine geteilte View wieder privat machen.

Pfad-Parameter

NameTypPflichtBeschreibung
idstringjaDie ID der View.

Body

NameTypPflichtBeschreibung
namestring
visibility"PRIVATE" | "PROJECT" | "WORKSPACE"
filterobjectErsetzt den ganzen Baum.
layoutstring
groupBystring | null
sortBystring
sortDir"asc" | "desc"

Beispiel

Terminal window
curl -X PATCH "$BARYNT_URL/api/v1/views/$VIEW_ID" \
-H "Authorization: Bearer $BARYNT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Urgent bugs (P1+)", "filter": { "op": "and", "rules": [{ "field": "priority", "is": "gte", "value": 4 }] } }'

Anfrage

{
"name": "Urgent bugs (P1+)",
"filter": {
"op": "and",
"rules": [{ "field": "priority", "is": "gte", "value": 4 }]
}
}

Antwort

{
"data": { "id": "v_3c9d1e", "name": "Urgent bugs (P1+)", "…": "…" }
}

DELETE /api/v1/views/{id}

Scope: views:write

Löscht eine View — mit denselben Rechten wie beim Ändern. Eingebaute Views lassen sich nicht löschen.

Pfad-Parameter

NameTypPflichtBeschreibung
idstringjaDie ID der View.

Beispiel

Terminal window
curl -X DELETE "$BARYNT_URL/api/v1/views/$VIEW_ID" \
-H "Authorization: Bearer $BARYNT_API_KEY"

Antwort

{
"data": { "id": "v_3c9d1e" }
}