laravel路由参数与post路由vs post参数

时间:2017-10-24 15:46:56

标签: php laravel

路由参数是否应仅用于获取/删除请求? 用户可以加入挑战,我希望有一个API端点。

这没关系:

Route::post('/challenge/{challenge}/join', 'UserController@joinChallenge');

或者我应该在帖子正文中传递挑战ID?

3 个答案:

答案 0 :(得分:1)

POST是一个完美的解决方案: “良好的网页设计”要求通过POST发送非幂等操作。这是一个非幂等操作(它有副作用,它会修改数据库的状态)。

服务器日志不记录POST参数,但会记录URL。在您的方案中,使用该设计查看日志更容易。

幂等: http://www.restapitutorial.com/lessons/idempotency.html

答案 1 :(得分:1)

没关系

更好的方法:

Route::post('/challenge/{challengeId}', 'UserController@joinChallenge');
不要忘记在控制器中捕获id

function joinChallenge(Request $request, $challangeId)

请参阅下面的参考资料

What are the best/common RESTful url verbs and actions?

答案 2 :(得分:0)

你可以在你的网址中传递参数,但你需要通过你的方法joinChallenge(Request $request, $challenge)接受这个参数