Generisches Baumdiagramm

Mit einem durch AaaS-API erstellten generischen Baumdiagramm können Sie Stamm- oder Entscheidungsbäume in Ihrer Datenbank abbilden oder andere allgemeingültige Baumstrukturen entwerfen und implementieren.

Sie müssen dafür lediglich einen Service vom Typ tree erzeugen. Die von AaaS-API zur Verfügung gestellten Schnittstellen zum Umgang mit der dann generierten Baumstruktur sind einheitlich.

Tree-Service anlegen

Sie erzeugen ein Projekt samt Repositorium und einen Service vom Typ tree:

curl -X POST "https://localhost/aaas/projects?groups[]=repository&groups[]=service" ...
{
    "name":"My API Project",
    "repositories":[
        {
            "name":"Examples",
            "services":[
                {
                    "name":"Family",
                    "type":"tree"
                }
            ]
        }
    ]
}

Der API-Server antwortet mit dem HTTP-Statuscode 201 und der eben gerade erzeugten Ressource:

{
    "id": 1,
    "name": "My API Project",
    "description": null,
    "repositories": [
        {
            "id": 1,
            "name": "Examples",
            "description": null,
            "project": "/aaas/projects/1",
            "services": [
                {
                    "id": 1,
                    "name": "Family",
                    "description": null,
                    "type": "tree",
                    "repository": "/aaas/project/repositories/1",
                    "fields": [
                    ]
                }
            ]
        }
    ]
}

Sie ordnen dem Service anschließend noch zwei Felder zu:

curl -X POST  "https://localhost/aaas/service/fields" ...
{
    "name": "name",
    "service": "/aaas/repository/services/1"
}
{
  "name": "birthdate",
  "dataType": "date",
  "service": "/aaas/repository/services/1"
}

Migration des Systems

Sie erstellen nun aus dem angelegten Projekt eine PHP-API, migrieren die Datenbank und leeren den Applikationscache Ihrer Anwendung:

curl -X GET "https://localhost/aaas/projects/1/build"
curl -X GET "https://localhost/aaas/system/migrate"
curl -X GET "https://localhost/aaas/system/clear-cache"

Die von AaaS-API generierte PHP-API können Sie dann sofort nutzen.

_images/family.png

Anlegen von Knoten

Sie können die erstellte PHP-API benutzen, um Ihre Baumstruktur zu befüllen:

curl -X POST "https://localhost/api/examples/families"
{
  "name" : "Leon Huber",
  "birthdate" : "2002-05-08"
}

Der API-Server antwortet dann mit der erstellten Ressource:

{
    "id": 1,
    "parent": null,
    "children": [
    ],
    "name": "Leon Huber",
    "birthdate": "2002-05-08T00:00:00+02:00"
}

Sie können dann Vorfahren von Leon Huber anlegen:

curl -X POST "https://localhost/api/examples/families"
{
  "name" : "Sara Huber",
  "birthdate" : "1987-04-15",
  "parent" : "/api/examples/families/1"
}

{
  "name" : "Erik Huber",
  "birthdate" : "1982-09-14",
  "parent" : "/api/examples/families/1"
}

Sie erstellen noch die Eltern von Sara Huber:

curl -X POST "https://localhost/api/examples/families"
{
  "name" : "Michelle Huber",
  "birthdate" : "1957-01-10",
  "parent" : "/api/examples/families/2"
}

{
  "name" : "Marcel Huber",
  "birthdate" : "1960-03-17",
  "parent" : "/api/examples/families/2"
}

Holen von Knoten

Sie können in gewohnter Weise die angelegten Ressourcen vom API-Server beziehen:

curl -X GET "https://localhost/api/examples/families"
[
    {
        "id": 1,
        "parent": null,
        "children": [
            "/api/examples/families/2",
            "/api/examples/families/3"
        ],
        "name": "Leon Huber",
        "birthdate": "2002-05-08T00:00:00+02:00"
    },
    {
        "id": 2,
        "parent": "/api/examples/families/1",
        "children": [
            "/api/examples/families/4",
            "/api/examples/families/5"
        ],
        "name": "Sara Huber",
        "birthdate": "1987-04-15T00:00:00+02:00"
    },
    {
        "id": 3,
        "parent": "/api/examples/families/1",
        "children": [
        ],
        "name": "Erik Huber",
        "birthdate": "1982-09-14T00:00:00+02:00"
    },
    {
        "id": 4,
        "parent": "/api/examples/families/2",
        "children": [
        ],
        "name": "Michelle Huber",
        "birthdate": "1957-01-10T00:00:00+01:00"
    },
    {
        "id": 5,
        "parent": "/api/examples/families/2",
        "children": [
        ],
        "name": "Marcel Huber",
        "birthdate": "1960-03-17T00:00:00+01:00"
    }
]

Wenn Sie nur ein Element beziehen möchten, dann spezifizieren Sie bitte noch den eineindeutigen Schlüssel der entsprechenden Ressource:

curl -X GET "https://localhost/api/examples/families/1"
{
    "id": 1,
    "parent": null,
    "children": [
        "/api/examples/families/2",
        "/api/examples/families/3"
    ],
    "name": "Leon Huber",
    "birthdate": "2002-05-08T00:00:00+02:00"
}

Wenn Sie sich die Vorfahren des entsprechenden Knotens anzeigen lassen möchten, dann hängen Sie bitte noch das Schlüsselwort childrens an die URI an. Sie können sich auf diese Art durch Ihre Baumstruktur hangeln:

curl -X GET "https://localhost/api/examples/families/1/childrens"
[
    {
        "id": 2,
        "parent": "/api/examples/families/1",
        "children": [
            "/api/examples/families/4",
            "/api/examples/families/5"
        ],
        "name": "Sara Huber",
        "birthdate": "1987-04-15T00:00:00+02:00"
    },
    {
        "id": 3,
        "parent": "/api/examples/families/1",
        "children": [
        ],
        "name": "Erik Huber",
        "birthdate": "1982-09-14T00:00:00+02:00"
    }
]
curl -X GET "https://localhost/api/examples/families/2/childrens"
[
    {
        "id": 4,
        "parent": "/api/examples/families/2",
        "children": [
        ],
        "name": "Michelle Huber",
        "birthdate": "1957-01-10T00:00:00+01:00"
    },
    {
        "id": 5,
        "parent": "/api/examples/families/2",
        "children": [
        ],
        "name": "Marcel Huber",
        "birthdate": "1960-03-17T00:00:00+01:00"
    }
]