2016-10-10 5 views
3

admin-on-rest ermöglicht die Verwendung von JSON-Antworten, indem benutzerdefinierte Restclients geschrieben werden. Die Beispiele in der Dokumentation beziehen sich auf JSON von json-server project, was einfach ist.React restClient admin-on-rest

Ich frage mich, wie einfach es ist, this api in Admin-on-Rest mit geringen Änderungen an restClient zu konsumieren.

+0

Es scheint, dass Ihre Links auf eine Fehlerseite zeigen –

+0

Ja auch für mich Link funktioniert nicht. Stellen Sie die Links, die Sie in der Frage – Veeresh123

+0

geschrieben haben, frei. Sie haben die Version 0.4.0 mit aktualisierter Dokumentation veröffentlicht. Ich habe die Links aktualisiert und die Syntaxprobleme mit der Anzeige von Links behoben – Chida

Antwort

0

Okay - lassen Sie uns in Quellen von Admin in Ruhe schauen (Datei admin-auf-Rest/src/util/fetch.js) wir sind intrested in fetchJson-Methode.

Diese Methode Rückkehr Versprechen holen, in denen versuchen, es json in diesem Code zu analysieren:

try { 
    json = JSON.parse(body); 
} catch (e) { 
    // not json, no big deal 
} 

und es kehrt dann das: return { status, headers, body, json };
Aber wir Körper in Folge haben und es wieder verwenden können, oder wir können verwenden geparsten Objekt in json

Für Ihr Beispiel können wir dies tun (verpassten einige Code):

const httpClient = (url, options = {}) => { 
    if (!options.headers) { 
     options.headers = new Headers({ Accept: 'application/json' }); 
    } 
    options.withCredentials = true; 
     return fetchUtils.fetchJson(url, options).then(({status, headers, body, json}) => { 
     json = json['results'] ? json['results'] : json; 
     return {status, headers, body, json}; 
    }); 
} 

so haben wir einfach overrwrited json Objekt in Sammlungen von 'Ergebnisse' in Ihrem Schema in dieser Zeile:
json = json['results'] ? json['results'] : json;
Jetzt können Sie diesen Client in Admin

<Admin restClient={restClient}> 
... 
</Admin> 

WARNUNG !!! Das betrifft ALLE Anfragen von Admin. Aber Sie können zusätzliche Parameter hinzufügen. Wenn Sie nicht json = json['results'] ? json['results'] : json; verwenden möchten, können Sie zusätzliche Parameter hinzufügen oder einchecken Methode holen

Verwandte Themen