Strapi
Strapi ist ein Content-Management-System (CMS) und Webframework, das als Open-Source-Software entwickelt wird. Es zählt zur Gruppe der Headless CMS und stellt damit kein eigenes Frontend bereit, sondern nur eine Programmierschnittstelle (API), über die Daten an andere Anwendungen ausgeliefert werden. Diese API wird automatisch aus einem Datenmodell generiert, worauf auch der Name des CMS zurückzuführen ist (Bootstrap your API).[1]
Strapi
| |
---|---|
Screenshot des Strapi-Dashboards auf einer lokalen Entwickler-Installation | |
Basisdaten
| |
Entwickler | Strapi |
Erscheinungsjahr | 2015 |
Aktuelle Version | 4.16.2 (21. Dezember 2023) |
Betriebssystem | plattformunabhängig |
Programmiersprache | JavaScript für Node.js |
Kategorie | Web-Content-Management-System, Webframework |
Lizenz | MIT-Lizenz (Freie Software) |
deutschsprachig | ja |
strapi.io |
Die Software wird federführend vom gleichnamigen französischen Hersteller entwickelt, der proprietäre Zusatzfunktionen, sowie Support für das CMS anbietet.
Das System wurde in JavaScript für die Node.js-Laufzeitumgebung geschrieben.
Funktionen
BearbeitenStrapi ist einerseits ein CMS, denn es bietet Funktionen, die typischerweise in CMS zu finden sind, wie einen Texteditor, eine Nutzerverwaltung und eine Medienbibliothek. Andererseits ist es ein Webframework für Webservices, da es die Entwicklung eigener Funktionen und API-Endpunkte möglich macht.[2]
Datenhaltung
BearbeitenFür die Datenhaltung kann Strapi unterschiedliche Datenbanken verwenden, darunter die relationalen Datenbanken SQLite, MySQL und MariaDB.[3] Datenmodelle werden dabei über Konfigurationsdateien erstellt, die im Datenformat JSON geschrieben werden. Hierbei kann aber auch ein visueller Editor genutzt werden, der die Konfigurationsdateien dann generiert.[4] Diese Datenmodelle werden dann als Datenbanktabellen in der jeweiligen Datenbank erstellt.
API
BearbeitenAus den konfigurierten Datenmodellen wird automatisch eine API generiert, die pro Datenmodell Endpunkte für das Lesen, Erstellen, Bearbeiten und Löschen von Einträgen bereitstellt.[5] Zugleich wird eine abrufbare Dokumentation erstellt, die diese Endpunkte beschreibt.[6]
Die API bietet Funktionen zum Filtern und Paginieren der Daten sowie schreibenden Zugriff. Mithilfe eines GraphQL-Plugins besteht zusätzlich die Möglichkeit, komplexe Datenbeziehungen effizient abzufragen. Volltextsuche, Nutzerverwaltung und Echtzeitzugriffe im Push-Modell bietet die API hingegen nicht.[7]
Programmierung
BearbeitenDie API kann in JavaScript über Middleware programmiert, verändert oder erweitert werden.[8] Das erlaubt zum Beispiel die Einbindung eigener Endpunkte, Geschäftslogik und Datenvalidierung. Strapi basiert auf dem Webframework Koa.js, einem Nachfolger von Express.js. Damit können Entwickler auch bereits existierende Middleware nutzen, die mit Koa.js kompatibel ist.[9]
Nutzerschnittstelle
BearbeitenAls CMS bietet Strapi über eine Webanwendung auch eine Nutzerschnittstelle für Administratoren, Autoren und Nutzer ohne technische Vorkenntnisse. Das Erstellen von Einträgen und das Schreiben von Texten sind über die Webanwendung möglich. Die Eingabefelder und Funktionen der Anwendung passen sich dabei den jeweiligen Datenmodellen an. Ist an einem Datentyp zum Beispiel ein Datumsfeld hinterlegt, zeigt die Nutzerschnittstelle einen Kalender als Eingabefeld an. Zur Erstellung von Texten steht ein WYSIWYG-Editor zur Verfügung. Auch das Verwalten von Nutzern und Zugangsrechten ist möglich. Es können dabei eigene Rollen erstellt und Nutzern zugewiesen werden.[2]
Die Webanwendung kann von Entwicklern an die Erfordernisse der eigenen Nutzer angepasst werden. Dabei können auch bestehende Komponenten des CMS erweitert oder ausgetauscht werden. Für die Programmierung der Webanwendung wird die JavaScript-Bibliothek React eingesetzt.[10]
Einsatzzweck
BearbeitenStrapi dient als Backend für Webseiten, die mithilfe eines reinen Frontend-Webframeworks wie zum Beispiel React entwickelt werden. Dabei kann es sich um Single-Page-Webanwendungen handeln, aber auch um statische Websitegeneratoren wie zum Beispiel Hugo. Darüber hinaus kann das Framework für die Datenhaltung und Geschäftslogik mobiler Anwendungen genutzt werden. Da es seine Programmierschnittstelle über HTTP bereitstellt, können mehrere Anwendungen und Dienste auf die Daten des CMS zugreifen.
Da Strapi nur eine API und keine Webseiten ausliefert, ist es jedoch nicht geeignet für Projekte, die direkt HTML-Seiten erstellen und ausliefern möchten und eine integrierte Lösung suchen.[11] Darüber hinaus richtet es sich ausschließlich an Softwareentwickler und kann nicht ohne Kenntnisse der Webentwicklung oder der Programmiersprache JavaScript genutzt werden.
Geschichte
BearbeitenStrapi wurde ursprünglich 2015 von den Entwicklern Pierre Burgy, Aurélien Georget und Jim Laurie im Rahmen eines Studienprojektes entwickelt. Die Entwickler arbeiteten zuvor mit bekannten CMS wie WordPress oder Drupal und suchten nach einer Lösung mit flexiblem, austauschbarem Frontend, die leichter an eigene Anforderungen anpassbar ist. Sie gründeten Strapi 2016 als Unternehmen in Paris, das Support und Zusatzmodule für das zugrundeliegende Open Source CMS anbietet.[1]
Das Projekt erhielt im Oktober 2019 eine Finanzierung 4 Millionen Dollar durch den Risikokapitalgeber Accel und weitere Partner.[12] Im Mai 2020 folgte eine weitere Finanzierung über 10 Millionen Dollar.[13]
Verbreitung
BearbeitenDas CMS verzeichnet seit seiner Veröffentlichung schnell steigende Download- und Nutzungszahlen. Bis März 2021 verbuchte Strapi über 2,4 Millionen Downloads vom Repository des Paketmanagers npm[14] und erhielt über 34.000 Sterne auf der Entwicklungsplattform GitHub[15] und gilt damit als eines der beliebtesten Node.js-Webframeworks.[16] Auch die Zahl der Entwickler, die zum Projekt beigetragen haben, ist im Februar 2021 auf GitHub auf über 600 angestiegen.[15] Zu den bekanntesten Unternehmen und Organisationen, die Strapi einsetzen, zählen IBM, Walmart, Toyota, Société Générale und die NASA.[13][17]
Weblinks
BearbeitenEinzelnachweise
Bearbeiten- ↑ a b About Strapi: What We Do and How We Got Here. Abgerufen am 4. März 2021 (englisch).
- ↑ a b Full-featured headless CMS and customizable API | Strapi. Abgerufen am 4. März 2021 (englisch).
- ↑ Databases | Strapi Developer Documentation. Abgerufen am 4. März 2021 (amerikanisches Englisch).
- ↑ Models | Strapi Developer Documentation. Abgerufen am 4. März 2021 (amerikanisches Englisch).
- ↑ API Endpoints | Strapi Developer Documentation. Abgerufen am 4. März 2021 (amerikanisches Englisch).
- ↑ API Documentation | Strapi Developer Documentation. Abgerufen am 4. März 2021 (amerikanisches Englisch).
- ↑ Strapi - Analyse und Vergleich | Bluepick. In: Bluepick. Abgerufen am 4. März 2021.
- ↑ Middlewares | Strapi Developer Documentation. Abgerufen am 4. März 2021 (amerikanisches Englisch).
- ↑ Strapi | Why Koa ? Abgerufen am 4. März 2021 (englisch).
- ↑ Customization | Strapi Developer Documentation. Abgerufen am 4. März 2021 (amerikanisches Englisch).
- ↑ Top 10 questions to Strapi CEO. Abgerufen am 4. März 2021 (englisch).
- ↑ Headless CMS company Strapi raises $4 million. In: TechCrunch. Abgerufen am 4. März 2021 (amerikanisches Englisch).
- ↑ a b Strapi, Maker of Popular Open Source Software for Creating and Delivering Digital Content Across All Devices, Secures $10 Million Funding Led by Index Ventures. 20. Mai 2020, abgerufen am 4. März 2021 (englisch).
- ↑ npm-stat: download statistics for NPM packages. Abgerufen am 8. März 2021.
- ↑ a b Strapi Repository bei Github. In: Github. strapi, 4. März 2021, abgerufen am 4. März 2021.
- ↑ 2020 JavaScript Rising Stars. Abgerufen am 8. März 2021 (englisch).
- ↑ Societe Generale develops their new training site with Strapi. Abgerufen am 4. März 2021 (englisch).