Antwort vom Restangulären POST erhalten

7

Wie bekomme ich das Antwortobjekt, nachdem ich einen Restangulären POST gesendet habe?

%Vor%

Ich versuche, die neue Objekt-ID zu erhalten.

Danke.

    
Hassanin Ahmed 16.06.2013, 17:40
quelle

3 Antworten

17

Ich bin der Schöpfer von Restangular. Flim hat recht:).

Im Versprechen erhalten Sie dann das Objekt vom Server zurückgegeben:)

%Vor%

Danke!

    
mgonto 19.06.2013, 06:21
quelle
2

Ich habe nicht direkt mit Restangular gearbeitet, aber Ihr POST muss wahrscheinlich ein JSON-Objekt mit der ID zurückgeben. Dann muss Ihre Erfolgsfunktion dies als Parameter akzeptieren.

%Vor%     
Foo L 17.06.2013 07:48
quelle
0

Ein Restangular-POST erwartet dasselbe Objekt als Antwort.

Dies wird deutlich bei Typoskript-Definitionen gesehen. Nehmen wir an, wir haben eine Methode, die ein Objekt vom Typ ITypeA erhalten wird und es in einer URL wie http://whatever/api/objects POST wird. Angenommen, die REST-API gibt ein 201 und auch ein JSON mit dem Antwortobjekt zurück, das dasselbe oder ein UNTERSCHIEDLICHES sein kann. In unserem Fall wäre der zurückgegebene Typ ITypeB . Dann wird unser Restangular nicht in der Lage sein, einen Standard-POST von ITypeA zu verwenden und eine Antwort von ITypeB zu erwarten, daher wird der folgende Code nicht korrekt sein, da restangular eine Antwort vom Typ ITypeA erhalten würde der eine gepostet).

%Vor%

Das kann mit einem customPOST gelöst werden, also wäre der obige Code wie folgt korrekt:

%Vor%

Es gibt ein paar Dinge zu beachten, zusammenfassend:

  1. Restangular kann das Antwortobjekt im erfolgreichen Rückruf erhalten ( then part)
  2. Wenn Sie die Methode .post(objectA) restangular verwenden, erwartet Sie, falls vorhanden, einen erfolgreichen Rückruf mit einer Antwort vom gleichen Typ wie das ObjektA.
  3. Wenn Sie ein ObjektA buchen möchten, aber ein AntwortobjektB (verschiedene Typen) erhalten möchten, verwenden Sie die Methode .customPOST(objectA)
  4. WICHTIG : Die Antwort ist eigentlich ein "restangularisiertes" Objekt, das das "reale" Antwortobjekt umschließt. Das bedeutet, dass die Antwort einige Restangular-Methoden enthält. Wenn Sie einfach das Antwortobjekt wollen, rufen Sie die Methode .plain() auf der Antwort auf, wie in meinem zweiten Beispiel gezeigt, wo die Antwort nicht tatsächlich ein ITypeB -Objekt ist, sondern ein restangular.IElement
iberodev 28.04.2016 21:42
quelle

Tags und Links