Rest Asp.NETWebAPI内容协商

Rest Asp.NETWebAPI内容协商,rest,asp.net-web-api,asp.net-web-api2,Rest,Asp.net Web Api,Asp.net Web Api2,…API/emailMessage/?emailId=test123 我已经使用WebAPI编写了上面的URL,以获取JSON数据格式的电子邮件(电子邮件正文、发件人、抄送、收件人等) 此外,我还要求允许下载电子邮件以及同一URL的附件 一种方法是使用内容协商。我可以使用“MediaTypeHeaderValue(“应用程序/八位字节流”)”发送可下载的内容 问题是…。 1.用户应在GET请求中请求JSON内容或下载内容的哪个参数?或者,从HTTP客户端询问内容类型的正确方法是什么? 2.在服务

…API/emailMessage/?emailId=test123

我已经使用WebAPI编写了上面的URL,以获取JSON数据格式的电子邮件(电子邮件正文、发件人、抄送、收件人等)

此外,我还要求允许下载电子邮件以及同一URL的附件

一种方法是使用内容协商。我可以使用“MediaTypeHeaderValue(“应用程序/八位字节流”)”发送可下载的内容

问题是…。 1.用户应在GET请求中请求JSON内容或下载内容的哪个参数?或者,从HTTP客户端询问内容类型的正确方法是什么? 2.在服务器端,我可以读取用户询问的内容类型,并使用case语句发送适当的数据。在这种情况下,服务器端是否需要考虑什么

谢谢,,
Eric

使用
Accept
请求头通知服务器客户端支持的媒体类型。但是,不要担心向URI添加format=参数以请求不同的格式。它不会对您的应用程序产生负面影响。

关于URL格式/设计或Rest样式或SEO URL,存在很大的争议。使用哪一个更有意义(接受请求头或向URL添加新参数)?@EricSmith我知道大多数参数。使用Accept标头可能会使缓存变得更加困难,因为您依赖于缓存。正确的选择取决于许多因素。但“这不是安宁”的说法是在转移注意力。