2017-10-24 3 views
1

Sollten Routing-Parameter nur für Get/Delete-Anfragen verwendet werden? Ein Benutzer kann einer Challenge beitreten und ich möchte einen API-Endpunkt dafür haben.Laravel-Route-Parameter mit Post-Routen vs Post-Parameter

Ist das ok:

Route::post('/challenge/{challenge}/join', '[email protected]'); 

oder sollte ich eher die Herausforderung ID in der Post Körper passieren?

+0

was ist Ihr "challenge"? Ist es eine öffentliche Zeichenfolge? –

+0

die Herausforderung ist eine UUID – Chris

+0

machen es ein Slug (Freundlicher URL), siehe meine Antwort unter –

Antwort

1

POST ist eine perfekte Lösung: "Gute Web-Design" erfordert nicht-idempotent Aktionen über POST gesendet werden. Dies ist eine nicht-idempotente Aktion (sie hat Nebenwirkungen, modifiziert den Zustand der Datenbank).

Serverprotokolle zeichnen keine POST-Parameter auf, aber sie zeichnen URLs auf. Es ist einfacher, mit dem Design in Ihrem Szenario etwas durch die Protokolle zu suchen.

idempotent: http://www.restapitutorial.com/lessons/idempotency.html

0

Sie Parameter innerhalb Ihrer URL passieren können, aber Sie müssen diese param durch Ihre Methode nehmen akzeptieren joinChallenge(Request $request, $challenge)

Verwandte Themen