1
比方说,我有两个对象,用户和约会,用户可能有一个或多个约会。在REST api中路由关系的最佳做法是什么?
我很好奇,如果我应该允许API的消费者从约会控制器的用户'过滤'。下面是调用我心目中的GET操作:
Users Controller
GET
api/Users
api/Users/{userId}
api/Users/{userId}/Appointments
api/Users/{userId}/Appointments/{appointmentId}
Appointments Controller
GET
api/Appointments/
api/Appointments/{appointmentId}
我很好奇,如果它是落实有关约会控制器的用户过滤器是一个好主意(良好实践)......所以上面的电话会变成:
Appointments Controller
GET
api/Appointments/{userId:int?}
api/Appointments/{appointmentId}
在上面的调用中,我为userId添加了一个可选的querystring参数,默认为null。这将允许调用者获取所有约会,或者通过userId获取约会。
我想我不确定什么被认为是具有关系的对象的最佳实践。