5

我正在开发一个 ASP.Net Web API 2 RESTful Web 服务,用于从我的数据库中导入和导出数据。对于我的导出方法,客户端有多个选项用于以不同格式(例如 pdf、xml 等)导出数据。我正在尝试为客户端确定我的界面的最佳设计,以通知服务以哪种格式提供数据。

据我所知,我的两个最佳选择是将 Accept Header 与媒体类型字符串一起使用,或者将参数添加到客户端可以在查询字符串中提供格式参数的方法中。如果我选择使用 Accept Header,这可能涉及使用自定义媒体类型字符串。

在我看来,使用 Accept Header 会更符合 HTTP 标准和 RESTful 实践,但在查询字符串中使用格式参数会更容易在服务端和客户端实现。

谁能解释这两种设计的优点或缺点是什么?

4

1 回答 1

3

您的两种方法都是获得相同结果的有效方法。REST 不是要实现的规范,因此无论您在此处得到什么响应,都可能是某人的首选方式或他们对 REST 的理解。

您的问题与programmers.SE的问题类似:通过 Accept header 与 extensions 进行内容协商之间的权衡。还要注意 pdf、xml 等具有标准认可的 mime 类型,因此我认为不需要自定义媒体类型字符串。

话虽如此,我首选的获取报告的方式是使用?format=pdf查询字符串。选择更容易、更易于维护、更清洁等的任何东西。

于 2014-11-19T21:39:30.610 回答