Skip to content

Funktionen_CollectionResource

Florian Fehring edited this page Mar 3, 2025 · 12 revisions

Funktion 1: Anlegen einer Collection

  1. Es wird ein Storage angelegt
    • testCreateCollection()
    • Die Collection wird angelegt, es wird automatisch eine identity-Spalte mit dem Namen id hinzugefügt
    • Es wird mit Status 201 CREATED geantwortet

Ausnahmen:

  1. Es soll eine Collection angelegt werden, die bereits existiert
    • testCreateCollectionAllreadyExists()
    • Es wird mit Status NOT_MODIFIED geantwortet
  2. In den Eigenschaften der Collection wird eine identity-Spalte mit autoinkrement angegeben
    • testCreateCollectionGivingAutoId()
    • Es wird die Collection mit der identity-Spalte und autoinkrement angelegt
  3. In den Eigenschaften der Collection wird eine identity-Spalte ohne autoinkrement angegeben
    • testCreateCollectionGivingId()
    • Es wird die Collection mit der identity-Spalte angelegt

Funktion 2: Abfragen der Attribute einer Collection

  1. Es wird eine Liste der verfügbaren Attribute mit ihren Eigenschaften ausgegeben
    • testGetAttributes()

Ausnahmen:

  1. Es gibt keine Attribute in der Collection
    • Es wird mit Status OK und einer leeren Liste geantwortet
  2. Es gibt die angegebene Collection / den Storage nicht
    • testGetAttributesNoExSchema()
    • Es wird mit Status 404 NOT FOUND und einer entsprechenden Meldung geantwortet

Beispiel: http://localhost:8080/SmartDataTest/smartdata/collection/tbl_card?storage=smartmonitoring

Funktion 3: Abfragen der Geo-Attribute einer Collection

  1. Es wird eine Liste der verfügbaren Geo-Attribute mit ihren Eigenschaften ausgegeben
    • testGetGeoAttributes()

Ausnahmen:

  1. Es gibt keine Attribute in der Collection
    • Es wird mit Status OK und einer leeren Liste geantwortet

Funktion 4: Ein neues Attribut hinzufügen

  1. Es werden neue Attribute zur Collection hinzugefügt
    • testAddAttributes()

Ausnahmen:

  1. Das Attribut kann nicht angelegt werden wegen ungültiger Eigenschaften
    • Es wird mit Status PRECONDITION_FAILED geantwortet

Funktion 5: Ein neues Geo-Attribut hinzufügen

  1. Es werden neue Geo-Attribute zur Collection hinzugefügt
    • testAddGeoAttributes()

Ausnahmen:

  1. Das Attribut kann nicht angelegt werden wegen ungültiger Eigenschaften
    • Es wird mit Status PRECONDITION_FAILED geantwortet

Funktion 6: Bei einem Geo-Attribut die SRID ändern

  1. Es werden neue Geo-Attribute zur Collection hinzugefügt
    • testChangeSRID()

Ausnahmen:

  1. Das Attribut kann nicht angelegt werden wegen ungültiger Eigenschaften
    • Es wird mit Status PRECONDITION_FAILED geantwortet

Funktion 7: Definition einer Collection kopieren

  1. Es wird über die CollectionRessource.getAttributes() die Definition einer Collection abgerufen. Diese wird dann an ein anderen Storage / Collection geschickt, um die Collection dort ebenfalls zu erzeugen.
    • testGetAttributesAndCreateTable()
    • Die Collection wird mit den entsprechenden Eigenschaften im neuen Storage unter dem neuen Collection-Namen angelegt
    • Es wird mit Status 201 CREATED geantwortet

Funktion 8: Attribute löschen

  1. Es wird über die CollectionResource.delAttributes() eine Liste von Attributen übergeben, die gelöscht werden sollen.
    • Die Attribute werden aus der Collection gelöscht
    • Es wird mit Status 200 OK geantwortet

Funktion 9: Abfragen der Fremdschlüssel einer Collection

  1. Es sollen die Fremdschlüssel einer Collection aufgelistet werden
    • Es muss eine Collection, die Fremdschlüssel kennt abgefragt werden
    • In der Auflistung der Attribute werden mit refName, refStorage, refAttribute, refOnUpdate, refOnDelete die Eigenschaften des Fremdschlüssels ausgegeben

Ausnahmen: Es werden dieselben Ausnahmen angewendet, wie beim Abfragen von Collections ohne Fremdschlüssel

Beispiel Antwort: { "name": "tbl_file_join_oo", "attributes": [ { "isAutoIncrement": false, "refCollection": "tbl_observedobject", "refOnDelete": "CASCADE", "isNullable": true, "name": "oo_id", "isIdentity": false, "refAttribute": "id", "type": "int8", "refName": "tbl_file_join_oo_fk", "refStorage": "smartmonitoring", "refOnUpdate": "CASCADE" },

Funktion 10: Eine Collection mit Fremdschlüsseln anlegen

  1. Es soll eine neue Collection inkl. Fremdschlüsseln angelegt werden
    • Das Definitions-JSON muss die Angaben refCollection und refAttribute enthalten. Mit refName, refStorage, refOnDelete und refOnUpdate können weitere Eigenschaften gesetzt werden

Ausnahmen:

  1. Existiert die zu referenzierende Collection nicht, wird mit Status 500 geantwortet

Funktion 11: Abfragen aller Referenzen zu und von einer Collection

Fragt die Referenzen von und zu einer Collection ab und listet sie auf.

Beispiel: https://scl.fh-bielefeld.de/SmartDataAirquality/smartdata/collection/tbl_observedobject/references?storage=smartmonitoring

Antwort: {"references": [ { "from_storage" : "smartmonitoring", "from_collection" : "schemes_visuals", "from_attr" : "observedobject_id", "to_storage" : "smartmonitoring", "to_collection" : "tbl_observedobject", "to_attr" : "id" }, { "from_storage" : "smartmonitoring", "from_collection" : "schemes_activity", "from_attr" : "observedobject_id", "to_storage" : "smartmonitoring", "to_collection" : "tbl_observedobject", "to_attr" : "id" }, { "from_storage" : "smartmonitoring", "from_collection" : "tbl_location_join_oo", "from_attr" : "oo_id", "to_storage" : "smartmonitoring", "to_collection" : "tbl_observedobject", "to_attr" : "id" }, { "from_storage" : "smartmonitoring", "from_collection" : "tbl_observedobject", "from_attr" : "parent_id", "to_storage" : "smartmonitoring", "to_collection" : "tbl_observedobject", "to_attr" : "id" } ], "name": "tbl_observedobject", "storage": "smartmonitoring" }

Clone this wiki locally