admin-on-rest允许通过编写自定义REST客户端来使用任何JSON响应。文档中的示例用于从json-server project使用JSON,这很简单。
我想知道在admin-on-rest中使用this api有多容易,只需对restClient做一些小改动。
admin-on-rest允许通过编写自定义REST客户端来使用任何JSON响应。文档中的示例用于从json-server project使用JSON,这很简单。
我想知道在admin-on-rest中使用this api有多容易,只需对restClient做一些小改动。
3条答案
按热度按时间rks48beu1#
好的-让我们看看admin on rest的源代码(文件admin-on-rest/src/util/fetch.js),我们对fetchJson方法感兴趣。
该方法返回fetch promise,其中它尝试解析代码中的json:
然后返回:
return { status, headers, body, json };
但是我们在result中有body,可以重用它,或者我们可以在json中使用解析对象
对于您的示例,我们可以这样做(一些代码丢失):
所以我们只是在你的schema中用集合重写了json对象:
json = json['results'] ? json['results'] : json;
现在您可以在Admin中使用该客户端
警告!!!这将影响到管理员的所有请求。但您可以添加额外参数。如果您不想使用
json = json['results'] ? json['results'] : json;
,您可以添加额外的参数或签入方法fetch5n0oy7gb2#
我建议你看看https://github.com/dev-family/admiral,它最近才推出,但它已经被证明是一件好事。我认为它应该帮助你解决你的问题。
hvvq6cgz3#
如果我没有弄错,你想有一个URL重写从(例如):https://marmelab.com/admin-on-rest-demo/#/customers/684联系人:https://marmelab.com/admin-on-rest-demo/?customers=684
你可以在restClient.js中重写GET_ONE:case GET_ONE:url =
${apiUrl}/${resource}/${params.id}
;收件人:case GET_ONE:url =${apiUrl}/?${resource}=${params.id}
;这将通过一个参数而不是url部分检索记录。