我是REST的管理员新手。
我对/users
的回答就像这样:
{
"status": 200,
"response": {
"data": [
{
"id": 298487355,
"login": "000000000053"
},
...
]
}
"error": "text error"
}
如何设置response
:data
:[...]
的路径以获取用户列表?
感谢
答案 0 :(得分:2)
您可以自定义您的restClient。例如,我选择使用jsonServer
,所以我在app.js
:
import customRestClient from './customRestClient'
const App = () => (
<Admin restClient={customRestClient('http://path.to.my.api/')}>
customRestClient
实际上是this文件,我将其带到我的来源,调整导入。
此文件是您的数据来自您的应用程序到您的API的点。
所以在convertHTTPResponseToREST
功能中,您只需查看resource
,如果是users
,您就可以访问自己的数据
json.response.data
并将其返回switch
答案 1 :(得分:0)
非常感谢@pelak。 我只是根据你的答案编写代码。
在自定义restClient指出响应数据的路径。
const convertHTTPResponseToREST = (response, type, resource, params) => {
const { headers, json } = response;
switch (type) {
case GET_LIST:
case GET_MANY_REFERENCE:
if (!headers.has('content-range')) {
throw new Error(
'The Content-Range header is missing in the HTTP Response. The simple REST client expects responses for lists of resources to contain this header with the total number of results to build the pagination. If you are using CORS, did you declare Content-Range in the Access-Control-Expose-Headers header?'
);
}
// IF you just want use with **users** resource.
if(resource === 'users') {
return {
data: json.result,
total: parseInt(
headers
.get('content-range')
.split('/')
.pop(),
10
),
};
}
return {
data: json.result,
total: parseInt(
headers
.get('content-range')
.split('/')
.pop(),
10
),
};
case CREATE:
return { data: { ...params.data, id: json.id } };
default:
return { data: json };
}
};
关键字:子元素列表,列表嵌套