PNAC / ENTWICKLUNG
Öffentliche Skripte und JSON-Dateien stehen auf pnac.online und pnac.link bereit. Die Beispiele verwenden bei einem Fehler automatisch den zweiten Server und können auf pnac.ch sowie anderen Plesk-Domains eingebunden werden.
Diesen Startcode direkt im eigenen Projekt speichern. So kann auch das Modul selbst vom zweiten Server geladen werden. Bei einer Content Security Policy beide PNAC-Domains in script-src und connect-src erlauben.
const pnac = await Promise.any(
['https://pnac.online', 'https://pnac.link'].map(origin =>
import(origin + '/shared/pnac-client.v2.js')
)
);
const data = await pnac.getJSON('example.json');
console.log(data);
Der Code gehört in ein Modul (type="module"). Das Modul wird parallel von beiden Servern geladen; die erste erfolgreiche Antwort wird verwendet. JSON-Aufrufe haben fünf Sekunden Zeitlimit je Server. Wenn beide Server ausfallen, wird ein Fehler ausgelöst, den das Projekt abfangen kann. Alternativ das Modul direkt im eigenen Projekt mitliefern.
Die PHP-Vorlage herunterladen, als private PHP-Datei im Projekt speichern und per require_once einbinden. PHP-cURL muss aktiviert sein.
require_once __DIR__ . '/includes/pnac-resources.php';
$data = pnacJson('/shared/example.json');
Öffentliche Dateien werden auf beiden Servern im gleichen Stand veröffentlicht. Keine Passwörter, API-Schlüssel oder privaten Nutzerdaten in diesen Bereich legen. Die Auslieferung ist lesend, ohne Anmeldung und für alle Website-Domains freigegeben.
Neue Node.js-Anwendungen erhalten einen eigenen Dienst und HTTPS-Endpunkt. Datenbanken, Schreibzugriffe und vollständige Anwendungen brauchen ein eigenes Konzept für Replikation und Ausfallsicherheit. Die Websites auf Plesk müssen die Beispiele noch selbst einbinden.