A React-admin data provider for backends built with Spring Framework.
// in App.js
import React from 'react';
import { Admin, Resource } from 'react-admin';
import {springDataProvider, springHttpClient} from 'ra-data-spring-rest';
import { UserList } from './users';
const httpClient = springHttpClient();
const dataProvider = springDataProvider('http://path.to.api/',httpClient);
const App = () => (
<Admin dataProvider={dataProvider}>
<Resource name="users" list={UserList} />
</Admin>
);
export default App;
springHttpClient()
use fetch
to send request,
you can also use springHttpClient(fetchUtils.fetchJson)
,
or customize it:
let httpClient = springHttpClient((url, options = {}) => {
options.credentials = 'include';
return fetchUtils.fetchJson(url, options)
.then(response => {
// do some thing you want
return response;
});
});
This package was built to work with the default configurations of a web app using Spring Framework. It currently supports:
-
Spring URLs with path variable.
-
Sorting with
SortHandlerMethodArgumentResolver
, using the sort query string parameter. -
Pagination with
PageableHandlerMethodArgumentResolver
, using the page and size query string parameters.
the react-admin Data Provider request example:
-
GET_LIST ⇒ GET http://my.api.url/posts?keyword=&page=0&size=10&sort=id,asc
-
GET_ONE ⇒ GET http://my.api.url/posts/123
-
GET_MANY ⇒ GET http://my.api.url/posts?id=1234&id=5678
-
GET_MANY_REFERENCE ⇒ GET http://my.api.url/comments?postId=&page=0&size=10&sort=id,asc
-
CREATE ⇒ POST http://my.api.url/posts
-
UPDATE ⇒ PUT http://my.api.url/posts/123
-
UPDATE_MANY ⇒ multiple call UPDATE
-
DELETE ⇒ DELETE http://my.api.url/posts/123
-
DELETE_MANY ⇒ multiple call DELETE