Der beste Weg, um eine RESTful Toggle-Aktion zu implementieren?

7

Ich schreibe eine alte Rails-Anwendung neu und dachte, ich sollte es REST-mäßig machen, als Lernerfahrung, wenn nichts anderes.

Ich habe einige Aktionen erreicht, die einen booleschen Wert umschalten, zum Beispiel wenn ein Artikel veröffentlicht wird oder nicht.

Bevor ich ein paar Aktionen hatte: toggle_published, publish und unpublish.

Sie waren sehr einfach zu benutzen: Ich habe gerade einen Link zu ihnen in der Artikel-Liste gemacht.

Wie würden Sie das Gleiche in einer RESTful Manier machen?

Soll ich die update-action verwenden und ein Mini-Formular erstellen, um alle zuvor verwendeten Links zu ersetzen? Mir gefällt diese Idee nicht besonders.

    
Jonatan 16.07.2010, 15:13
quelle

3 Antworten

0

Es klingt, als hätten Sie zwei Anwendungsfälle:

  • setzt den veröffentlichten Status
  • schaltet den veröffentlichten Status um

Sie können eine Mitgliedsroute für die Umschaltaktion hinzufügen für:

%Vor%

Und Artikelaktualisierung verwenden: veröffentlichtes Attribut über die Standard-REST-Ressourcenroute.

%Vor%     
Winfield 17.07.2010, 03:07
quelle
23

Nur ein Hinweis:

Eine Toggle-Methode ist nicht RESTful, weil das HTTP-PUT-Verb idempotent sein soll (siehe ao Ссылка ) ). Dies bedeutet, dass Sie unabhängig davon, wie oft Sie eine Methode ausführen, immer das gleiche Ergebnis liefern sollten. Eine Toggle-Methode hält sich nicht an dieses Prinzip, da es nicht das gleiche Ergebnis liefert, wenn Sie es einmal ausführen und es zweimal ausführen.

Wenn Sie es RESTful machen wollen, sollten Sie zwei Methoden erstellen: eine für die Einstellung und eine für die Aufhebung.

Wenn Sie eine Anwendung RESTful machen, bedeutet das nicht nur, dass Sie das richtige HTTP-Verb verwenden müssen.

    
Van der Hoorn 17.02.2011 14:13
quelle
9

Ich würde es wahrscheinlich mit PUT / DELETE oder POST / DELETE auf einer verschachtelten "Toggle-Ressource" lösen. Vielleicht nicht 100% völlig erholsam, aber sicherlich leicht genug zu verstehen.

%Vor%

Scheint ein bisschen seltsam zu sein, aber es ist technisch RESTful.

Update: Ein (vielleicht) natürlicherer Ansatz könnte auch einfach sein:

%Vor%

Sie könnten auch das PATCH Verb mit dem eigentlichen Artikel verwenden, von dem ich annahm, dass er eine published Eigenschaft hat:

%Vor%

Weil all die coolen REST Kids heutzutage PATCH benutzen.

    
Chris Nicola 11.04.2012 17:49
quelle

Tags und Links