Allgemein
CustomRestRule-Regeln ermöglichen den Aufruf von Java-Regeln direkt über den REST-Service.
Sie sind unabhängig von Businessobjekten und müssen deshalb nicht über den Regelmanger zugewiesen werden.
Die Berechtigung einer CustomRestRule wird über eine Zuweisung im Unterformular "REST-Regeln" in der jeweiligen Benutzergruppe durchgeführt.
Über ein Context-Objekt erhält man Zugriff auf z.B. aufrufenden Benutzer oder Sprache.
Der Aufruf des REST-Service wird über @Path Annotationen gesteuert.
CustomRestRegeln besitzen immer den URL-Prefix "/rest/custom/".
Der obige REST-Service liefert nach Aufruf von http://localhost/nuclos/rest/custom/example/customers folgendes Ergebnis:
[
{
id: 1,
name: "Mustermann"
},
{
id: 2,
name: "Meier"
}
]
Über ein Context-Objekt kann man außerdem Zugriff auf z.B. den aufrufenden Benutzer oder die Sprache erhalten. Dieses wird innerhalb der Klasse wie folgt eingebunden:
@Inject protected Provider<CustomRestContext> context; // Dazu müssen noch drei weitere Klassen importiert werden: import javax.inject.Inject; import javax.inject.Provider; import org.nuclos.api.context.CustomRestContext;
Behandlung von Exception und Custom Responses, jegliche Exceptions die in der Methode nicht mit einem try/catch-Block behandelt wird, wird vom Container-Service (Tomcat/Glassfish) als 500-Fehler gemeldet.
Um dieses Verhalten anzupassen ist es notwendig die Exceptions mittels try/catch zu behandeln und korrekte eigene Responses zu liefern, als Beispiel: