Calendar API表示

时间:2016-05-09 13:52:13

标签: python django api rest django-rest-framework

我目前正在开发基于django和django-restframework的应用程序。 API将根据请求的时间范围(每周)提供json编码的事件/任务对象。如果我将后端视为黑盒子,我可以使用以下URL / API方案:

calendar/week/<year>/<week_no>/  --> Get all events on isoweek <week_no> in <year>
calendar/week/<year>/            --> Get current isoweek in <year>
calendar/week/                   --> Get current week

calendar/day/<year>/<day_no>/   --> Get all events on isoday <day_no> in <year>
calendar/day/<year>/            --> Get current isoday in <year>
calendar/day/                   --> Get current day

据我所知,这将给我一个很好的API结构。

这引出了我的问题: 我无法确定实现此API结构的方法是django restframework的“最干净”。

现在我看到以下可能性:

  • 每个,每天和每周的一个DefaultRouter
  • 使用默认网址映射实现自定义路由器
  • 使用drf-nested-routers模块

在这个问题上缺乏经验,所以我想对此有所了解。

提前致谢并提出最好的问候

Nerade

1 个答案:

答案 0 :(得分:0)

另一种方法是查看所有这些&#34;过滤&#34;选项作为查询参数,并专注于支持过滤本身。如果您使用此方法,则您的网址为/calendar/events/。相应的过滤将是

/events/?week=41
/events/?start=DDMMYY&end=DDMMYY
/events/?day=53

每次都会返回一个事件列表。如果您访问了/events/43/,它会为您提供ID = 43

的活动详情

可能用作背景的是JSON API spec,它描述了组织API的一些最佳实践,这有助于在前端使用JS框架