À propos du projet

React-admin est un framework frontend maintenu par marmelab pour construire des applications monopages s'exécutant dans le navigateur au-dessus d'API REST ou GraphQL. Il est écrit en TypeScript, basé sur React et Material Design, et distribué sur npm sous le nom de react-admin. Agnosticisme du backend : le framework communique avec les API via des adaptateurs appelés Data Providers. Le README lie une liste de Data Providers documentant plus de 45 adaptateurs, et explique que les fournisseurs existants peuvent servir de modèle pour une API ou qu'un Data Provider personnalisé peut être écrit pour interroger une API existante. Blocs de construction : le projet décrit la fourniture de hooks et de composants couvrant l'authentification, le routage, les formulaires et la validation, les datagrids, la recherche et le filtrage, les relations, les rôles et les permissions, un éditeur de texte enrichi, l'i18n, les notifications, les menus, le thémage et la mise en cache. Il liste également des qualités telles que l'accessibilité, la réactivité, la sécurité, la vitesse et la testabilité, ainsi que des fonctionnalités d'expérience utilisateur comme le rendu optimiste, le filtrage à la saisie, l'annulation, les préférences et les requêtes enregistrées. Personnalisation : react-admin est présenté comme une bibliothèque de composants React et de hooks faiblement couplés exposant une logique de contrôleur réutilisable, afin que n'importe quelle partie puisse être remplacée par la vôtre, par exemple un datagrid personnalisé, GraphQL au lieu de REST, ou un système de design différent au lieu de Material Design. TypeScript est décrit comme optionnel, le développement pouvant être fait en TypeScript ou en JavaScript. Le README note que le framework est propulsé par Material UI, react-hook-form, react-router, react-query et TypeScript, entre autres. Prise en main : l'installation s'effectue avec npm install react-admin ou yarn add react-admin. La documentation comprend un tutoriel, des tutoriels vidéo YouTube et une référence API complète. Le dépôt contient des applications d'exemple : un blog simple avec des articles, des commentaires et des utilisateurs utilisé pour les tests de bout en bout ; un admin de boutique d'affiches e-commerce qui est la démo officielle ; une application CRM ; une application de ticketing de helpdesk avec des verrous et notifications en temps réel ; et l'application construite en suivant le tutoriel. Le README précise que ces exemples fonctionnent sans serveur car l'API est simulée côté client. Un exemple d'utilisation minimal montre un composant Admin enveloppant des composants Resource qui déclarent des pages de liste, d'édition et de création pour un point de terminaison d'API, avec des composants de page construits à partir de List, DataTable, Edit, Create, SimpleForm, DateField, EditButton et de composants de saisie. Développement : le monorepo utilise un makefile avec des commandes telles que make install, make build, make run-simple, make run-demo, make test et make prettier. Les tests unitaires utilisent jest, les tests de bout en bout utilisent cypress, et un hook de pré-commit git exécute les tests liés aux fichiers modifiés. Les contributions doivent suivre le style de codage basé sur prettier et inclure des tests unitaires et de la documentation. Les pull requests de correction de bugs ciblent la branche master, tandis que les nouvelles fonctionnalités et les changements majeurs ciblent next. Support et licence : le support communautaire est offert via Discord et StackOverflow, et un support commercial est proposé via une React-Admin Enterprise Edition. React-admin est sous licence MIT et est gratuit d'utilisation, y compris à des fins commerciales.