Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
React-admin позволяет быстро получить достаточно быструю, красивую и функциональную админку. Нужно только написать dataProvider или подстроить бэк под него.
Чтобы этот процесс максимально упростить, я сделал пару модулей, решил ими поделиться.
dataProvider я взял из документации, но использует _id вместо id, что удобно с монгой.
Чтобы создавать в express необходимые enpoint`ы я написал фукнцию, которая принимает в качестве аргументов router, адрес и модель. get метод там поддерживает сортировку и фильтры, совместимые с react-admin.
Для создания нужных компонент на фронте можно использовать *Guesser из react-admin, но я написал скрипт, который парсит файл с моделью и генерирует нужные поля. В качестве аргумента ему передается путь к файлу с моделей, и необязательный параметр --filters для полей, по которым нужны фильтрация.
Например: python gen_view.py ~/project/models/user.js --filters=email,first_name >src/users.js
Последний 2 строчки там - строка Resourse, которую нужно добавить в App.js
Вопрос авторизации решается на стороне express.
Вот собственно и всё, так имея только модели mongoose можно получить crud-админку.