Existing DataService list
While creating a DataService is pretty easy sometimes you just wish to plug and play. Fortunately there are plenty official and 3party data services that you can use.
You can use RestDataService
by importing them from our library and using directly inside of your app. Follow quick start to learn more.
import { RestDataService } from '@kickass-coderz/data-service'
3party data services
DataService as a concept took a lot of ideas from our fellow developers at Marmelab (opens in a new tab) and their react-admin
library which uses data provider concept. It is a great library for creating ready made CMS application and they have a long history of maintainers and community (we are part of this community too). As DataService has a similar interface to any data provider you can actually use any of the premade data providers made for react-admin
.
Using data provider as DataService
You can find the list of providers below but let's take a look of how you can use them as your DataService. We will take ra-supabase (opens in a new tab) data provider as an example. Supabase is a open source alternative to Google's firebase.
Install the data provider library
npm install @kickass-coderz/data-service # or any other data provider
Create the data provider instance
// dataProvider.js
import { createClient } from '@supabase/supabase-js'
export const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY)
import { supabaseDataProvider } from 'ra-supabase'
import { supabase } from './supabase'
const resources = {
posts: ['id', 'title', 'body', 'author_id', 'date'],
authors: ['id', 'full_name']
}
const dataProvider = supabaseDataProvider(supabase, resources)
export default dataProvider
For other data providers you should check their Docs/README to see the necessary parameters.
Create the DataService
import { createFromDataProvider } from '@kickass-coderz/data-service'
import supabaseDataProvider from './dataProvider'
// this will create a DataService intance from exiting data provider
const supabaseDataService = createFromDataProvider(supabaseDataProvider)
Use the DataService
import { DataServiceProvider } from '@kickass-coderz/data-service'
import supabaseDataProvider from './dataProvider'
const supabaseDataService = createFromDataProvider(supabaseDataProvider)
const App = () => {
return (
<DataServiceProvider dataService={supabaseDataService}>
<Component />
</DataServiceProvider>
)
}
Data provider list
Check the list below for open-source packages developed and maintained by developers from the react-admin community. You can use any of those as your DataService by using the createFromDataProvider
helper.
- AWS Amplify (opens in a new tab): MrHertal/react-admin-amplify (opens in a new tab)
- Blitz-js (opens in a new tab): theapexlab/ra-data-blitz (opens in a new tab)
- Configurable Identity Property REST Client (opens in a new tab): zachrybaker/ra-data-rest-client (opens in a new tab)
- coreBOS (opens in a new tab): React-Admin coreBOS Integration (opens in a new tab)
- Django Rest Framework (opens in a new tab): bmihelac/ra-data-django-rest-framework (opens in a new tab)
- Eve (opens in a new tab): smeng9/ra-data-eve (opens in a new tab)
- Express & Mongoose (opens in a new tab): NathanAdhitya/express-mongoose-ra-json-server (opens in a new tab)
- Express & Sequelize (opens in a new tab): express-sequelize-crud (opens in a new tab)
- FakeRest (opens in a new tab): marmelab/ra-data-fakerest (opens in a new tab)
- Feathersjs (opens in a new tab): josx/ra-data-feathers (opens in a new tab)
- Firebase Firestore (opens in a new tab): benwinding/react-admin-firebase (opens in a new tab).
- Firebase Realtime Database (opens in a new tab): aymendhaya/ra-data-firebase-client (opens in a new tab).
- GeoServer (opens in a new tab): sergioedo/ra-data-geoserver (opens in a new tab)
- Google Sheets (opens in a new tab): marmelab/ra-data-google-sheets (opens in a new tab)
- GraphQL (generic) (opens in a new tab): marmelab/ra-data-graphql (opens in a new tab) (uses Apollo (opens in a new tab))
- GraphQL (simple) (opens in a new tab): marmelab/ra-data-graphql-simple (opens in a new tab).
- HAL (opens in a new tab): b-social/ra-data-hal (opens in a new tab)
- Hasura (opens in a new tab): hasura/ra-data-hasura (opens in a new tab), auto generates valid GraphQL queries based on the properties exposed by the Hasura API.
- Hydra (opens in a new tab) / JSON-LD (opens in a new tab): api-platform/admin/hydra (opens in a new tab)
- IndexedDB (opens in a new tab): tykoth/ra-data-dexie (opens in a new tab)
- JSON API (opens in a new tab): henvo/ra-jsonapi-client (opens in a new tab)
- JSON HAL (opens in a new tab): ra-data-json-hal (opens in a new tab)
- JSON server (opens in a new tab): marmelab/ra-data-json-server (opens in a new tab)
- LocalStorage (opens in a new tab): marmelab/ra-data-localstorage (opens in a new tab)
- Loopback3 (opens in a new tab): darthwesker/react-admin-loopback (opens in a new tab)
- Loopback4 (opens in a new tab): elmaistrenko/react-admin-lb4 (opens in a new tab)
- Loopback4 CRUD (opens in a new tab): loopback4/ra-data-lb4 (opens in a new tab)
- Mixer (opens in a new tab): ckoliber/ra-data-mixer (opens in a new tab)
- Moleculer Microservices (opens in a new tab): RancaguaInnova/moleculer-data-provider (opens in a new tab)
- NestJS CRUD (opens in a new tab): rayman1104/ra-data-nestjsx-crud (opens in a new tab)
- OData (opens in a new tab): Groopit/ra-data-odata-server (opens in a new tab)
- OpenCRUD (opens in a new tab): weakky/ra-data-opencrud (opens in a new tab)
- Parse (opens in a new tab): almahdi/ra-data-parse (opens in a new tab)
- PostGraphile (opens in a new tab): bowlingx/ra-postgraphile (opens in a new tab)
- PostgREST (opens in a new tab): raphiniert-com/ra-data-postgrest (opens in a new tab)
- Prisma v1 (opens in a new tab): weakky/ra-data-prisma (opens in a new tab)
- Prisma v2 (GraphQL) (opens in a new tab): panter/ra-data-prisma (opens in a new tab)
- Prisma v2 (REST) (opens in a new tab): codeledge/ra-data-simple-prisma (opens in a new tab)
- ProcessMaker3 (opens in a new tab): ckoliber/ra-data-processmaker3 (opens in a new tab)
- REST-HAPI (opens in a new tab): ra-data-rest-hapi (opens in a new tab)
- Sails.js (opens in a new tab): mpampin/ra-data-json-sails (opens in a new tab)
- SQLite (opens in a new tab): marmelab/ra-sqlite-dataprovider (opens in a new tab)
- REST (opens in a new tab): marmelab/ra-data-simple-rest (opens in a new tab)
- Spring Boot (opens in a new tab): vishpat/ra-data-springboot-rest (opens in a new tab)
- Strapi (opens in a new tab): nazirov91/ra-strapi-rest (opens in a new tab)
- Supabase (opens in a new tab): marmelab/ra-supabase (opens in a new tab)
- TreeQL / PHP-CRUD-API (opens in a new tab): nkappler/ra-data-treeql (opens in a new tab)
- WooCommerce REST API (opens in a new tab): zackha/ra-data-woocommerce (opens in a new tab)
Referenced from Link (opens in a new tab)