Vokabulare¶
Die Grundlagen für den Umgang mit Vokabularen und Sourcen findet man in der plone.restapi Dokumentation Vocabularies and Sources.
In plone.restapi
wird jedoch nur das Editieren bestehender Inhalte
abgebildet. GEVER erweitert dies um eine weitere Aufruf-Syntax für @sources
,
@querysources` und @vocabularies
. Für diese drei Endpoints wird eine neue
Aufruf-Syntax eingeführt, welche die Add-Semantik wiederspiegelt.
GET (container)/@sources/(portal_type)/(field_name) HTTP/1.1
GET (container)/@querysources/(portal_type)/(field_name) HTTP/1.1
GET (container)/@vocabularies/(portal_type)/(field_name) HTTP/1.1
Die Endpoints wurden überschrieben und so umgebaut, dass sie entweder einenn oder zwei Pfad-Parameter akzeptieren:
- 1 Parameter: Der parameter ist
field_name
. Dies impliziert Edit intent. - 2 Parameter: Die Parameter sind
portal_type
undfield_name
, in dieser Reihenfolge. Dies impliziert Add intent.
Abhängig von der Aufruf-Syntax soll das Schema, von dem die Source, Querysource oder Vocabulary geholt wird, unterschiedlich bestimmt werden:
- Edit - es soll der
portal_type
des context ausgelesen werden - Add - es soll der
portal_type
Pfad-Parameter verwendet werden
Eine Query-Source nach token abfragen¶
Zusätzlich zum schon in plone.restapi
zur Verfügung gestellten Paremeter
query
lässt sich eine @querysource
in GEVER auch nach einem bereits
bekannten token
abfragen. Dieses muss als Query-String Paremeter angegeben
werden. Es darf nur entweder token
oder query
verwendet werden, nicht
beides zugleich.
Beispiel-Request:
GET /dossier-15/@querysources/responsible?token=hans.muster HTTP/1.1
Accept: application/json
Beispiel-Response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "/dossier-15/@querysources/responsible?token=hans.muster",
"items": [
{
"title": "Hans Muster (hans.muster)",
"token": "hans.muster"
}
],
"items_total": 1
}