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.
package example.rest; import java.util.Arrays; import java.util.List; import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import org.nuclos.api.context.CustomRestContext; import org.nuclos.api.rule.CustomRestRule; @Path("example") public class CustomRestWithPathTestRule implements CustomRestRule { @Inject CustomRestContext context; @GET @Path("customers") @Produces("application/json") public List<Customer> customers() { return Arrays.asList( new Customer(1, "Mustermann"), new Customer(2, "Maier") ); } public static class Customer { private int id; private String name; public Customer(final int id, final String name) { this.id = id; this.name = name; } public int getId() { return id; } public String getName() { return name; } } }
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: "Maier" } ]