ra-data-spring-rest icon indicating copy to clipboard operation
ra-data-spring-rest copied to clipboard

data provider for react-admin

= ra-data-spring-rest xiayx [email protected] v1.0, 2020-03-18: SNAPSHOT

A https://github.com/marmelab/react-admin[React-admin] data provider for backends built with Spring Framework.

== Installation

npm install --save ra-data-spring-rest

== Usage

[source%nowrap,javascript]

// 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:

[source%nowrap,javascript]

let httpClient = springHttpClient((url, options = {}) => { options.credentials = 'include'; return fetchUtils.fetchJson(url, options) .then(response => { // do some thing you want return response; }); });

== Feature

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