【发布时间】:2011-01-19 15:23:20
【问题描述】:
我在REST - complex applications 阅读了这篇文章,它回答了我的一些问题,但不是全部。
我正在设计我的第一个 REST 应用程序,需要将“子集”列表返回给 GET 请求。以下哪个更“RESTful”?
/patients;listType=appointments;date=2010-02-22;user_id=1234
或
/patients/appointments-list;date=2010-02-22;user_id=1234
甚至
/appointments/2010-02-22/patients;user_id=1234
我需要返回大约十几个不同的列表。在其中一些中,会有几个过滤参数,我不想在我的服务器代码中使用大的“if”语句来根据存在的参数选择子集。例如,我可能需要某个特定医生的所有患者,其中覆盖医生是另一位医生,而主治医生是另一位医生。我可以选择
/patients;rounds=true;specific_id=xxxx;covering_id=yyyy;primary_id=zzzz
但这需要复杂的分支逻辑才能获得正确的列表,其中要求特定子集(轮列表)将实现相同的目标。
请注意,我需要使用矩阵参数而不是查询参数,因为我需要在 URL 的多个级别进行过滤。我使用的框架(RestEasy),完全支持矩阵参数。
【问题讨论】:
-
我认为它们都可能是 RESTish,但 URL 只是 RESTish 的一部分。我的选择是 /appointments/patients/user_id=1234/date=2010-02-22,这样您就可以取消日期并获取该用户 ID 的所有患者预约。
标签: rest