Appearance
Interne Endpunkte
Zwei Endpunkte brauchen ein gültiges Token, aber keine bestimmte Ability.
| Methode | Pfad | Zweck |
|---|---|---|
GET | /user | Wem gehört dieses Token? |
GET | /search/suggestions | Vorschläge für die strukturierte Suche |
Benutzer zum Token
GET /user
Liefert den PIM-Benutzer, dem das Token gehört. Praktisch, um nach dem Einrichten zu prüfen, ob ein Token funktioniert. Keine Parameter.
Beispiel
bash
curl -sS https://admin.matev.eu/api/v1/user \
-H 'Accept: application/json' \
-H "Authorization: Bearer $MATEV_TOKEN"js
const res = await fetch('https://admin.matev.eu/api/v1/user', {
headers: { Accept: 'application/json', Authorization: `Bearer ${process.env.CONTENT_API_TOKEN}` },
})
if (res.status === 401) throw new Error('Token ungültig oder widerrufen')
const { data: user } = await res.json()php
use Illuminate\Support\Facades\Http;
$user = Http::acceptJson()
->withToken(config('services.matev.token'))
->get('https://admin.matev.eu/api/v1/user')
->throw()
->json('data');Antwort 200
json
{
"data": {
"id": 3,
"name": "Kirby Content-Zugang",
"email": "content-bot@example.test",
"roles": ["api_consumer"]
}
}Fehler
| Status | code | Wann |
|---|---|---|
| 401 | unauthenticated | Token fehlt oder ist ungültig |
| 405 | method_not_allowed | andere Methode als GET |
Suchvorschläge
GET /search/suggestions
Liefert Vorschläge für eine Suche mit Operatoren wie type:image oder product:schneepflug-sp-250. Das PIM nutzt dieselbe Logik in seiner „Intelligenten Suche“.
Berechtigung und Sichtbarkeit
Das Token braucht die Fähigkeit search oder content:catalog:read, sonst antwortet der Endpunkt mit 403. Content-Tokens sehen nur aktive Produkte und Artikel, öffentlich sichtbare Medien und für das CMS freigegebene Ordner. Volle Tokens (*) und im PIM angemeldete Nutzer sehen alles – auch Inaktives, damit die Redaktion es findet.
Query-Parameter
| Parameter | Typ | Bedeutung |
|---|---|---|
q | String | Eingabe bisher, z. B. ty, type:, product:sp |
context | String | global (Standard), media oder article. Bei media gibt es zusätzlich den Operator mime: und Treffer in Dateinamen; bei article fehlt der Operator article: |
limit | Integer | Höchstzahl der Vorschläge, Standard 12, erlaubt 1–30 (wird begrenzt) |
So funktioniert es:
- Ohne Doppelpunkt schlägt der Endpunkt passende Operatoren vor:
type:,taxonomy:,tag:,folder:,status:,ki:,used:,product:,article:(undmime:im Kontextmedia). - Mit Operator schlägt er Werte vor: Asset-Typen, Freigabestatus, KI-Status, Ordner, Taxonomie-Terme, Produkte, Artikel oder
used:yes/used:no. Bei Ordnern, Termen, Produkten und Artikeln höchstens 10 Treffer.
Jeder Vorschlag hat:
| Feld | Typ | Bedeutung |
|---|---|---|
value | String | Text, der ins Suchfeld übernommen wird |
label | String | Deutsche Anzeige |
type | String | operator, value, folder, taxon, product, article oder media |
Beispiel
bash
curl -sS 'https://admin.matev.eu/api/v1/search/suggestions?q=status:frei&limit=5' \
-H 'Accept: application/json' \
-H "Authorization: Bearer $MATEV_TOKEN"js
const params = new URLSearchParams({ q: 'status:frei', limit: '5' })
const res = await fetch(`https://admin.matev.eu/api/v1/search/suggestions?${params}`, {
headers: { Accept: 'application/json', Authorization: `Bearer ${process.env.CONTENT_API_TOKEN}` },
})
const { data: suggestions } = await res.json()php
use Illuminate\Support\Facades\Http;
$suggestions = Http::acceptJson()
->withToken(config('services.matev.token'))
->get('https://admin.matev.eu/api/v1/search/suggestions', ['q' => 'status:frei', 'limit' => 5])
->throw()
->json('data');Antwort 200
json
{
"data": [
{ "value": "status:released", "label": "Freigegeben – uneingeschränkt", "type": "value" },
{ "value": "status:released_channels", "label": "Freigegeben – nur bestimmte Kanäle", "type": "value" },
{ "value": "status:not_released", "label": "Nicht freigegeben", "type": "value" }
]
}Fehler
| Status | code | Wann |
|---|---|---|
| 401 | unauthenticated | Token fehlt oder ist ungültig |
| 405 | method_not_allowed | andere Methode als GET |