Mobile-App-Entwickler: hier beginnen
Dieser Abschnitt richtet sich an Entwickler, die eine App bauen, die Exponential-Inhalte anzeigt oder schreibt: eine native iOS- oder Android-App, eine plattformübergreifende App (Flutter, React Native, Kotlin Multiplatform und Ähnliches), eine Progressive Web App, einen Kiosk, einen Uhren- oder TV-Client oder jedes andere Programm, das über HTTP mit einer Exponential-Installation spricht. Sie brauchen keine PHP-Kenntnisse, um diese Seiten zu nutzen. Wenn Sie die Serverseite ändern müssen, übernimmt der Abschnitt Anwendungsentwickler.
Hinweis Jede Route, jeder Parameter und jede Einstellung, die dieser Abschnitt nennt, wurde im Code der Erweiterung
ezprestapi, im REST-Framework des Kernels (kernel/private/rest/), inezjscore,expservicesundsettings/rest.inisowie in den verlinkten Anleitungen geprüft. Wo etwas nicht existiert (ein SDK, CORS-Header, Bildaliase in REST-Antworten, eine Suchroute in REST), sagen die Seiten das, statt einen Umweg als Funktion zu beschreiben.
Inhalt
- Exponential für App-Entwickler in einer Minute
- Die drei HTTP-Schnittstellen
- Wie sich eine App anmeldet
- Ihre ersten zehn Minuten
- Seiten in diesem Abschnitt
- Was es nicht gibt
- Andere Abschnitte dieser Hilfe
Exponential für App-Entwickler in einer Minute
Exponential speichert Inhalte als Objekte von Inhaltsklassen (Artikel, Ordner, Bild, Produkt, Ihre eigenen Klassen), die als Knoten in einem Inhaltsbaum liegen. Redakteure arbeiten in der Administrationsoberfläche; Ihre App liest das veröffentlichte Ergebnis über HTTP und erhält JSON. Jeder Aufruf läuft als ein Benutzer, und dessen Rollen und Richtlinien entscheiden, was der Aufruf sehen oder ändern darf. Mehr Modell braucht eine App nicht; Wie Exponential-Inhalte in eine App gelangen erklärt es mit echten Antworten.
Die drei HTTP-Schnittstellen
| Schnittstelle | URL-Muster | Am besten für | Lesen |
|---|---|---|---|
REST-Inhalts-API (ezprestapi) | /api/ezp/v1/... und /api/ezp/v2/... | Knoten, Unterknoten und Felder lesen; Inhalte anlegen und entfernen (v2) | REST-API |
Remote-Dienste (expservices) | /ezjscore/call/exp<domain>::<method> | Suche, Bildalias-URLs, URL-Aliase, Sprachen, Aktualisierungen; über tausend Dienste | JSON-Endpunkte |
| Serverfunktionen von ezjscore | /ezjscore/call/<name>::<function> | ein kleiner JSON-Endpunkt, den ein PHP-Entwickler für Ihre App schreibt | ezjscore-Serverfunktionen für Ihre App |
Die meisten Apps lesen mit der REST-API und nutzen einen oder zwei Remote-Dienste für das, was REST nicht abdeckt. Die Entscheidung ist in Welche API für Ihre App beschrieben.
Wie sich eine App anmeldet
| Zugangsdaten | Header | Für | Lesen |
|---|---|---|---|
| OAuth2-Zugriffstoken | Authorization: OAuth <token> (oder Bearer <token>) | eine App, deren Benutzer sich mit ihrem eigenen Exponential-Konto anmelden | OAuth2-Autorisierungscode-Ablauf |
Persönlicher API-Schlüssel expk_... | Authorization: Bearer expk_... | das eigene Werkzeug oder Skript einer einzelnen Person, nie eine veröffentlichte App | Persönliche API-Schlüssel für Werkzeuge |
expservices-Token expt_... | Authorization: Bearer expt_... und X-Exp-Token: expt_... | die Remote-Dienste als Benutzer aufrufen | expservices-Tokens in Apps |
Die REST-API verlangt standardmäßig eine Authentifizierung (rest.ini [Authentication] RequireAuthentication=enabled).
Wie Sie wählen, erklärt Zugangsdaten auswählen.
Ihre ersten zehn Minuten
- Prüfen Sie die Installation, mit der Sie arbeiten werden: Erst prüfen, dann bauen.
- Besorgen Sie sich Zugangsdaten für die Entwicklung: Ein persönlicher API-Schlüssel auf einer Testinstallation ist der schnellste Weg (Persönliche API-Schlüssel für Werkzeuge).
- Stellen Sie Ihre erste Anfrage: Ihre erste Anfrage.
- Listen Sie einen Ordner seitenweise auf: Unterknoten auflisten und Paginierung.
- Lesen Sie die Lücken, bevor Sie Bildschirme entwerfen: Was die APIs nicht können.
Die vollständige Reihenfolge steht im Lesepfad. Kurze Antworten finden Sie in den FAQ, die Begriffe werden im Glossar erklärt.
Seiten in diesem Abschnitt
| Ordner | Was er abdeckt |
|---|---|
| REST-API | Routen, Antwortgruppen, Listen und Seiten, Felder, XHTML-Ausgabe, Schreibzugriffe, Fehler, Versionen |
| Authentifizierung | OAuth2 und Refresh-Tokens, API-Schlüssel, expservices-Tokens, Geheimnisse auf Geräten, ein Backend für Ihre App |
| JSON-Endpunkte | expservices aufrufen, Suche, Schreibzugriffe, Ihre eigenen Serverfunktionen |
| Inhaltsmodellierung | Inhaltsklassen für Apps, IDs und Deep Links, Sprachen, Rich Text |
| Medien und Bilder | Bilder in REST-Antworten, Bildaliase für Bildschirmgrößen, Dateien und Uploads |
| Offline und Leistung | Caching auf dem Server, Caching in der App, Synchronisation, Browser-Apps, CORS und CSP |
| Veröffentlichungsablauf | Entwürfe und Vorschau, Berechtigungen für App-Benutzer, Nachvollziehbarkeit |
| Testen | Gegen eine Demo testen, eine lokale Testinstallation |
| Checklisten | Sicherheit, Start, Bereitschaft für die App-Store-Prüfung |
Was es nicht gibt
Mit Exponential wird kein offizielles mobiles SDK ausgeliefert. Auch die Erweiterung expsite_app ist keines: Ihr
eigenes README.md beschreibt sie als Ort eines Website-Projekts für Design-Overrides und Projekteinstellungen.
Ausgeliefert werden die oben genannten HTTP-Schnittstellen, die Shell- und Python-Clients von expservices sowie
Client-Beispiele für Kotlin, Swift, Objective-C, Qt und GTK in der
expservices-Referenz, die angibt, dass die Beispiele für Kotlin,
Swift, Objective-C und Qt von Hand geprüft, aber nicht kompiliert wurden. Die vollständige Liste der Lücken steht in
Was die APIs nicht können.
Andere Abschnitte dieser Hilfe
| Abschnitt | Für |
|---|---|
| Anwendungsentwickler | PHP-Entwickler, die den Server erweitern: REST-Provider, Module, Dienste |
| Mobile Apps, Headless-Einsatz und Netzwerke | Inhaber und Produktverantwortliche, die die App planen |
| Website-Ersteller | Die Personen, die die Website und ihre Inhaltsklassen bauen |
| Hosting-Unternehmen | Die Personen, die den Server betreiben, mit dem Ihre App spricht |
Verwandte Seiten
- Welche API für Ihre App
- Wie Exponential-Inhalte in eine App gelangen
- Headless-Exponential
- REST-API v1 und v2: eine Erweiterung
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.