Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

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.

Beispiel
package example.rest;

import java.util.Arrays;
import java.util.List;

import javax.inject.Inject;
import javax.inject.Provider;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("example")
public class CustomRestWithPathTestRule implements CustomRestRule {

	@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:

Ergebnis
[
	{
		id: 1,
		name: "Mustermann"
	},
	{
		id: 2,
		name: "Maier"
	}
]

 Ü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:

Context
@Inject
protected Provider<CustomRestContext> context;

// Dazu müssen noch zwei Klassen importiert werden:

import org.nuclos.api.rule.CustomRestRule;
import org.nuclos.api.context.CustomRestContext;
  • No labels