Query

Client sendet nach Schema:

Zusammenhängde Eingaben werden als Strings in einem Array übertragen.

type = JSON
{
    "query": {
        "query" : <Array of <String>>
    }
}

Server antwortet nach Schema:

type = JSON
<Array of <Texture>>

Get Texture

Client sendet nach Schema:

type = JSON
{
    "get_texture": {
        "id" : <UUID>,
    }
}

Server antwortet nach Schema:

type = JSON 
    <Texture>

Oder, wenn Textur nicht gefunden

type = Error

Get Texture File

Client sendet nach Schema:

type = JSON
{
    "get_texture_file": {
        "texture_hash" : <Hash>,
    }
}

Server antwortet nach Schema:

type = Binary
Textur-Datei

Oder, wenn Textur-Datei nicht gefunden

type = Error

Get Texture Preview

Client sendet nach Schema:

type = JSON
{
    "get_texture_preview": {
        "texture_hash" : <Hash>,
    }
}

Server antwortet nach Schema:

type = Binary
Textur-Preview

Oder, wenn Textur-Datei nicht gefunden

type = Error

Replace Texture

Diese Request dient dazu alte Texturen zu löschen und neue Hinzufügen. Ein Löschen und gleichzeitiges Hinzufügen, ergibt ein Update der Textur.

Falls "old" != null, wird die hier angebene Textur gelöscht. Wird diese nicht exakt gleich vorgefunden, schlägt diese Anfrage fehl (type = Error). In diesem Fall wird "new" nicht berücksichtigt.

Falls "new" != null, wird die hier angebene Textur zum System hinzugefügt. Sollte die angebene id schon vorhanden sein, schlägt diese Anfrage fehl (type = Error).

Dieser Semantik wurde gewählt, damit ein Update atomar ist und dopplte Anfragen zum Fehlern führen.

Client sendet nach Schema:

type = JSON
{
    "replace_texture": {
        "old": <Texture> | null,
        "new": <Texture> | null,
    }
}

Server antwortet nach Schema:

type = JSON
true

Oder falls "texture_hash" nicht gefunden wurde nach Schema:

type = JSON
{
    "get_texture_file": {
        texture_hash : <Hash>,
    }
}

Woraufhin der Client die Textur-Datei sendet:

type = Binary
Textur-Datei

Der bestätigt dies dann mit:

type = JSON
true