2016-09-26 6 views
1

Ich benutze Laravel/PHP, um einige JSON für Ember auszugeben, um abzuholen .... ein paar Dinge hier.EmberJS API Fragen mit PHP

Zuerst meine PHP sieht wie folgt aus (gibt es eine andere Möglichkeit, die Daten zu senden)

 return Response::json([ 
     'articles' => $articles->toArray() 
     ], $statusCode); 

Dies ist, was ich zu tun gewohnt bin.

 foreach($articles as $article) { 
     $response['articles'][] = [ 
      'id' => $article->id, 
      'body' => $article->body, 
      'title' => $article->title 
     ]; 
    } 

     return Response::json([ 
     'articles' => $articles->toArray() 
     ], $statusCode); 

Das erste PHP-Snippet funktioniert gut, aber das zweite nicht. Ich erhalte von Ember alle Arten von Fehlern bezüglich der Ressourcentypen.

Nächste Frage ist für Ember Köpfe. Im Moment bekomme ich alles mit RESTAdapter arbeiten aber sollte ich stattdessen JSONAPIAdapter verwenden? Wenn ich versuche, um es mit JSONAPIAdapter und JSONAPISerializer Arbeit erhalte ich diese Fehler

Eine oder mehrere der folgenden Tasten müssen vorhanden sein: \ „data \“, \ „Fehler \“, \ "Meta

. ich kann diesen Fehler weg zu gehen, aber dann bekomme ich eine Fehlermeldung über einen nicht definierten Typ oder eine unbekannte Ressource.

+0

Zeige den 'return' Teil des zweiten Schnipsel. Zweite Frage - Jsonapi muss 'Daten' Schlüssel als" primäre Daten "enthalten http://jsonapi.org/format/#document-top-level – user1156168

+0

Ich habe den Beitrag aktualisiert, um die Rückkehr Benutzer1156168 .... Ich hatte das in der Array, aber ich denke, mein PHP war falsch, ich werde wieder testen und sehen, was ich finden kann. Denkst du ich brauche einen Serialisierer oder wäre das in diesem Fall zuviel? – Teejten

Antwort

1

Es ist nicht zwingend JSONAPIAdapter zu verwenden, aber wenn Sie die Kontrolle über die API haben dann Sie können sehr gut es verwenden. API-Antwort sollte folgen w Format (http://jsonapi.org/format/)

Beispielformat für einzelne Ressourcenobjekt,

{ 
    "data": { 
    "type": "articles", 
    "id": "1", 
    "attributes": { 
     // ... this article's attributes 
    }   
    } 
} 

Beispielformat für mehrere Ressourcenobjekte,

{  
    "data": [{ 
    "type": "articles", 
    "id": "1", 
    "attributes": { 
     "title": "JSON API paints my bikeshed!" 
    } 
    }, { 
    "type": "articles", 
    "id": "2", 
    "attributes": { 
     "title": "Rails is Omakase" 
    } 
    }] 
} 
+0

sehr gut kumkanillam, danke für die Antwort. Das Format funktioniert perfekt mit JSONAPI! – Teejten