ฉันกำลังสร้าง REST API ใน Laravel และมีสิ่งหนึ่งที่ฉันคิดไม่ออก สถานการณ์มีดังนี้ ผู้ใช้สามารถเข้าสู่ระบบ เรียกดูบทความ และทำให้เป็นบทความโปรดได้
โต๊ะโปรดประกอบด้วย article_id
และ user_id
คำขอได้รับการออกแบบในลักษณะต่อไปนี้:
[GET]
/article/24 ดูบทความ 24[GET]
/article/24/favorite หมายถึงรายการโปรด หากไม่ส่งคืน 404[POST]
/article/24/favorite ทำให้เป็นรายการโปรด[DELETE]
/article/24/favorite ลบรายการโปรด
ดูเหมือนว่าจะใช้ได้ แต่ทรัพยากรที่ซ้อนกันโดยค่าเริ่มต้นคาดว่าจะมีรูปแบบต่อไปนี้:
/controller/[id]/sub_controller/[sub_id]
วิธีที่ดีที่สุดในการหลีกเลี่ยงข้อกำหนด รหัสย่อย นี้คืออะไร ฉันไม่ต้องการ ID ของรายการโปรด เนื่องจากการรวมกันของ รหัสบทความ และ รหัสผู้ใช้ ก็เพียงพอที่จะค้นหารายการในฐานข้อมูลของฉัน
นี่คือเส้นทางปัจจุบันของฉันสำหรับคำขอ:
Route::resource('articles', 'ArticlesController',
array('only' => array('index','store','show','destroy')));
Route::resource('articles.favorite', 'ArticlesFavoriteController',
array('only' => array('show','store','destroy')));
ขณะนี้ ฉันต้องการให้ผู้ใช้ API ต่อท้าย /0 เข้ากับ url เพื่อทริกเกอร์เส้นทางที่ถูกต้อง แต่จะต้องมีวิธีที่ดีกว่า