路由参数是否应仅用于获取/删除请求? 用户可以加入挑战,我希望有一个API端点。
这没关系:
Route::post('/challenge/{challenge}/join', 'UserController@joinChallenge');
或者我应该在帖子正文中传递挑战ID?
答案 0 :(得分:1)
POST是一个完美的解决方案: “良好的网页设计”要求通过POST发送非幂等操作。这是一个非幂等操作(它有副作用,它会修改数据库的状态)。
服务器日志不记录POST参数,但会记录URL。在您的方案中,使用该设计查看日志更容易。
答案 1 :(得分:1)
没关系
更好的方法:
Route::post('/challenge/{challengeId}', 'UserController@joinChallenge');
不要忘记在控制器中捕获id
function joinChallenge(Request $request, $challangeId)
请参阅下面的参考资料
答案 2 :(得分:0)
你可以在你的网址中传递参数,但你需要通过你的方法joinChallenge(Request $request, $challenge)
接受这个参数