/decision

Mit der API Ressource /decision werden Nutzerentscheidung zu Produkten (Features bzw. Attribute) getroffen und zurückgenommen. Zudem können alle bzw. einzelne Entscheidungen gelesen werden.

POST /decision/{fqn}

Eine Nutzerentscheidung für ein Feature oder ein Attribut wird erzeugt und die Konsequenzen durchgerechnet.

URL : /decision/{fqn}
Method : POST
HeaderParam
  Apikey : <your apikey>
  Sessionkey : <your sessionkey>
PathParam:
  fqn : <fully qualified name>
@Consumes : application/json, utf8-encoded
@Produces: text/plain

Method expects Json Object containing:

{
  "state" : "select one of {SELECT|DISABLE}",
  "value" : "integer, enum or bool - just in case of an 'attribute'"
}
state value comment
SELECT Feature or attribute value will be selected.
DISABLE Feature or attribute value will be disabled (deselect).

ACHTUNG Eine Nutzerentscheidung kann lauten: Disable Feature XY und bedeutet, dass dieses Feature explizit nicht gewollt wird (und auf den Status “Delete” gesetzt wird). Dies ist nicht zu verwechseln mit dem Zurücknehmen einer Nutzerentscheidung:

  1. Select Feature XY (via POST /decision), gefolgt von
  2. Release Decision Feature X (via DELETE /decision/XY)

Attribute: value

Für alle drei Arten von Attributen wird ein String übergeben. Bei Bool Attributen kann “1” oder “true” verwendet werden, allerdings kein echter Bool Wert.

Für Features kann value wegfallen.

PUT /decision/{fqn}

Ändert die Nutzungsentscheidung innerhalb eines Kontexts oder legt diesen erstmalig fest.

Typ Kontext
Feature <group type=”OneOf”>
Attribute Alle Values dieses Attributes.
URL : /decision/{fqn}
Method : PUT
HeaderParam
  Apikey : <your apikey>
  Sessionkey : <your sessionkey>
PathParam:
  fqn : <fully qualified name>
@Consumes : application/json, utf8-encoded
@Produces: text/plain
{
  "state" : "select one of {SELECT|DISABLE}",
  "value" : "integer, enum or bool - just in case of attribute"
}

GET /decision

Gibt eine Liste aller bestehenden Nutzerentscheidungen zurück. Die Ressource kann u.a. dazu genutzt werden, eine Stückliste zu erzeugen.

URL : /decision
Method : GET
HeaderParam
  Apikey : <your apikey>
  Sessionkey : <your sessionkey>
@Consumes : ---
@Produces: application/json, utf8-encoded

Zurückgegeben wird ein unsortiertes JSON Array mit folgenden Key Value Paaren:

Key Value Description
fqn String Fully Qualified Name (FQN) des Features/Attributes
title String Title des Features/Attributes
elementtype String One of {feature|attribute}
decision String Description of Decision

Example:

[
  {
    "fqn" : "PRODUCT.Stuhl.Armlehne.Material.Holz",
    "title" : "Holz",
    "elementtype" : "feature",
    "decision" : "selected"
  },
  {
    "fqn" : "PRODUCT.Stuhl.Armlehne.Farbe.Weiß",
    "title" : "Farbe.Weiß",
    "elementtype" : "attribute",
    "decision" : "deleted"
  }
]

GET /decision/{fqn}

Holt eine einzelne Nutzerentscheidung zu einem Modelelement.

URL : /decision/{fqn}
Method : GET
HeaderParam
  Apikey : <your apikey>
  Sessionkey : <your sessionkey>
PathParam:
  fqn : <fully qualified name>
@Consumes : ---
@Produces: application/json, utf8-encoded

Response als Json analog zu GET /decision für einzelnes Modelelement.

{
  "fqn" : "PRODUCT.Stuhl.Armlehne.Material.Holz",
  "title" : "Holz",
  "elementtype" : "feature",
  "decision" : "selected"
}

DELETE /decision/{fqn}

Entfernt eine Nutzerentscheidung aus dem Constraint System.

URL : /decision/{fqn}
Method : DELETE
HeaderParam
  Apikey : <your apikey>
  Sessionkey : <your sessionkey>
PathParam:
  fqn : <fully qualified name>
@Consumes : text/plain
@Produces: text/plain

Ist keine Nutzerentscheidung für FQN bekannt oder kann dieses nicht gefunden werden, gibt die API einen entsprechenden Fehler zurück.

DELETE /decision

Entfernt alle Nutzerentscheidung aus dem Constraint System.

URL : /decision
Method : DELETE
HeaderParam
  Apikey : <your apikey>
  Sessionkey : <your sessionkey>
@Consumes : text/plain
@Produces: text/plain