Web services GET request-参数或Accept标头中所需的响应格式

Web services GET request-参数或Accept标头中所需的响应格式,web-services,rest,http-headers,query-string,http-accept-header,Web Services,Rest,Http Headers,Query String,Http Accept Header,我正在开发一个ASP.NETWebAPI2RESTfulWeb服务,用于从数据库导入和导出数据。对于我的导出方法,客户端有几个选项用于导出不同格式的数据(例如pdf、xml等)。我正在尝试为我的界面确定最佳设计,以便客户通知服务以何种格式提供数据 据我所知,我的两个最佳选择是使用带有媒体类型字符串的Accept标头,或者向方法中添加一个参数,客户机可以在查询字符串中提供format参数。如果我选择使用Accept标头,这可能涉及使用自定义媒体类型字符串 在我看来,使用Accept头将更符合HTT

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

据我所知,我的两个最佳选择是使用带有媒体类型字符串的Accept标头,或者向方法中添加一个参数,客户机可以在查询字符串中提供format参数。如果我选择使用Accept标头,这可能涉及使用自定义媒体类型字符串

在我看来,使用Accept头将更符合HTTP标准和RESTful实践,但是在查询字符串中使用format参数将更容易在服务端和客户端实现


有人能解释一下这两种设计的优缺点吗?

两种方法都是获得相同结果的有效方法。REST不是一个要实现的规范,所以无论您在这里得到什么样的响应,都可能是某人首选的实现方式,或者他们是如何理解REST的

您的问题与程序员的问题类似。SE:。请注意,pdf、xml等具有标准的可识别mime类型,因此我认为不需要自定义媒体类型字符串

也就是说,获取报告的首选方法是使用
?format=pdf
查询字符串。选择更简单、更易维护、更干净的东西