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