API mit Primefaces erstellen?

Maik639

Erfahrenes Mitglied
Hi Leute,

ich wollte mal fragen, wie man mit Primefaces eine API erstellen kann.
Wenn man z.B. einen HTTP Post an http://root-space.eu/remote_upload.php sendet mit den Parametern referer=api und urls[]= bildurl, dann bekommt man eine JSON-Antwort zurück. Wenn ich allerdings meine Formulare "sniffe" dann sehe ich keine resonse.

Ich hoffe ich könnt mir helfen.

Viele Grüße,

Maik
 
Hi,

PrimeFaces hat damit erstmal gar nichts zu tun, es bietet (grob gesagt) nur eine JSF-Komponentenbibliothek für das Frontend an.
Die API-Funktionalität liegt dahinter, auf der Servlet-Ebene. Sprich um das Beispiel mal aufzugreifen, müsstest du dir ein Servlet programmieren, dass die Parameter entgegen nimmt und behandelt und dann selbst die Antwort(JSON, HTML, XML, was auch immer) generieren.
Da wir ja in der tollen Java-Welt sind gibt es für alles bestimmt mindestens 5 Frameworks :) Da du ja Primefaces und damit auch JSF benutzt, wird das Servlet von JSF zur Verfügung gestellt und wenn du dann damit API-Funktionalität bei den gleichen URLs wie fürs Frontend erreichen musst du das irgendwie über JSF-Listener machen, die vor dem parsen der Seiten geschaltet werden(siehe JSF-Phaselistener und preRenderViewEvent).

Ich würde aber jedem empfehlen, der API-Funktionalität bei einer Webseite anbieten möchte, das auch im Backend zu trennen, da das einerseits ein ziemliches durcheinander geben kann/wird und du auch seperate Namespaces haben kannst und damit auch ein eigenes Servlet bzw. direkt Webservices für die API benutzen kannst.
Guck dir am besten mal REST und SOAP an, REST läuft über HTTP(GET, POST, PUT und DELETE) und SOAP definiert die Kommunikation über ein eigenes XML-Format. Das schöne ist, dass die beiden im JEE-Standard mit drin sind, sprich es gibt schon Support dafür und du musst dich um dich um die Implementierung der API selbst(Parameter parsen, etc) so gut wie gar nicht kümmern.

Ich hoffe ich konnte dir helfen :)

Gruß
Matt
 
EDIT:

Was ich eigentlich sagen will ist folgendes: Ich würde gerne einen HTTP post abgeben und dann in meinem Object die HTTP Server antwort auslesen können (Header und den eigentlichen Content).
 
Zuletzt bearbeitet:
Zurück