6.4 KiB
/_/NAMESPACE/COLLECTION
Dieser Endpoint ermöglicht Interaktionen mit den Collectionen, die flexible Strukturen zur Organisation und Kategorisierung von Daten darstellen. Sie können einen Collectioneintrag abrufen, aktualisieren, erstellen und löschen. Jede Collection wird durch einen eindeutigen Namespace und Namen identifiziert.
GET /{namespace}/{collection}
Diese Anforderung ruft alle Einträge einer bestimmten Collection ab. Sie nimmt den Namespace und den Namen der Collection sowie optionale API-Parameter für die Anpassung der Anfrage als Parameter an.
Antwort
Die Antwort ist ein Objekt mit folgenden Eigenschaften:
-
data
: Ein Array von CollectionEntry Objekten. -
count
: Die Gesamtzahl der Einträge.
interface Collection {
name: string
meta?: CollectionMeta
permissions?: {
public?: CollectionPermission
user?: CollectionPermission
[token: string]: CollectionPermission
}
projections?: {
[projectionName: string]: {
select: {
[field: string]: 1 | 0
}
}
}
fields: CollectionField[]
}
GET /{namespace}/{collection}/{id}
Diese Anforderung ruft einen bestimmten Eintrag in einer Collection ab. Sie nimmt den Namespace und Namen der Collection sowie die ID des abzurufenden Eintrags als Parameter an.
Anforderungsparameter
id
: Die ID des abzurufenden Eintrags.
Antwort
Die Antwort ist das entsprechende CollectionEntry Objekt.
PUT /{namespace}/{collection}/{id}
Diese Anforderung aktualisiert die Daten eines vorhandenen Eintrags in einer Collection. Sie nimmt den Namespace und den Namen der Collection, die ID des zu aktualisierenden Eintrags und ein Änderungssatz-Objekt, das die zu aktualisierenden Daten enthält, als Parameter an.
Anforderungsparameter
id: Die ID des zu aktualisierenden Eintrags.
data: Ein Änderungssatz-Objekt, das die zu aktualisierenden Daten enthält.
Antwort
Die Antwort ist das aktualisierte CollectionEntry Objekt.
POST /{namespace}/{collection}
Diese Anforderung erstellt einen neuen Eintrag in einer Collection. Sie nimmt den Namespace und den Namen der Collection und ein Datenobjekt, das die Informationen des neuen Eintrags enthält, als Parameter an. Optional kann eine Funktion für den Fortschritt des Uploads übergeben werden.
Anforderungsparameter
data
: Ein Datenobjekt, das die Informationen des neuen Eintrags enthält.
Antwort
Die Antwort ist das neu erstellte CollectionEntry Objekt.
DELETE /{namespace}/{collection}/{id}
Diese Anforderung löscht einen vorhandenen Eintrag in einer Collection. Sie nimmt den Namespace und den Namen der Collection und die ID des zu löschenden Eintrags als Parameter an.
Anforderungsparameter
id
: Die ID des zu löschenden Eintrags.
Antwort
Die Antwort ist ein boolean, das true zurückgibt, wenn das Löschen erfolgreich war.
Jede Collection besteht aus mehreren Feldern (CollectionField), die verschiedene Datenpunkte repräsentieren. Jedes Feld hat einen Namen, einen Typ und ggf. eine Reihe von Subfeldern. Die Metadaten eines Feldes (CollectionFieldMeta) können zusätzliche Informationen über das Feld enthalten, wie z.B. ein Label, Hilfstexte, Widget-Typen, InputProps und mehr.
Eine Collection kann auch Metadaten (CollectionMeta) enthalten, die Informationen über die Collection selbst enthalten.
interface CollectionNavigation {
label?: I18Text
muiIcon?: string
defaultSort?: {
field: string
order?: "ASC" | "DESC" | "MANUALLY"
}
defaultImageFilter?: string
views?: View[]
filter?: { [key: string]: any }
defaultCallback?:
| "edit"
| "view"
| {
eval: string
}
}
interface CollectionMeta extends CollectionNavigation {
singleton: boolean
rowIdentTpl?:
| string
| {
twig: string
}
subNavigation?: CollectionNavigation[]
tablist?: {
activeTab?: string
tabs: CollectionMetaTab[]
}
[key: string]: any
}
interface CollectionMetaTab {
name: string
label: I18Text
dependsOn?: DependsOn
subFields: {
source: string
name?: string
}[]
_resolvedSubFields?: CollectionField[]
_hide?: boolean
}
interface EntryViewTab {
name: string
meta: {
[key: string]: any
}
}
interface CollectionPermission {
methods?: MethodPermission
filter?: any
validProjections?: string[]
}
interface CollectionField {
name: string
type?: string
index?: ("single" | "unique")[]
meta?: CollectionFieldMeta
subFields?: CollectionField[]
}
type CssWithEval = string | { [key: string]: string | number } | { eval: string }
interface ContainerProps {
class?: string
style?: string
layout?: {
breakBefore: boolean
breakAfter: boolean
size: {
default: string
small: string
large: string
}
}
}
interface CollectionFieldMeta {
source?: string
label?: I18Text
helperText?: I18Text
widget?: string
valueMap?: {
[value: "string" | number]: {
name?: I18Text
muiIcon?: string
style?: string
}
}
containerProps?: ContainerProps
choices?: ArrayFieldChoice[] | EndpointOptions
filter?: boolean | FilterConfig
defaultValue?: DefaultValue
addAllowed?: boolean
props?: {
step?: string | number
[key: string]: string | number | boolean
}
inputProps?: {
step?: string | number
[key: string]: any
}
dependsOn?: DependsOn
css?: {
input?: {
wrapper?: CssWithEval
element?: CssWithEval
foreignEntry?: CssWithEval
}
view?: {
wrapper?: CssWithEval
element?: CssWithEval
foreignEntry?: CssWithEval
}
filter?: {
wrapper?: CssWithEval
element?: CssWithEval
foreignEntry?: CssWithEval
}
}
folding?: {
unfolded?: boolean
previewFolded?:
| string
| {
eval: string
raw?: boolean
}
previewUnfolded?:
| string
| {
eval: string
raw?: boolean
}
}
[key: string]: any
}