[英]How can I specify the default MimeType returned by a REST resource with Jersey
我正在創建REST接口,並具有資源“數據”。 現在,我希望用戶可以指定他希望數據是XML還是JSON。 因此,我為同一路徑創建了兩個方法,一個方法產生application / xml,另一個方法產生application / json。 一切正常,但是如果用戶未設置“ Accept”標頭字段,我如何指定應返回的內容?
我的測試表明,它並不總是相同的。 昨天默認值為application / xml,今天我的測試失敗了,因為返回了默認的application / json。
如何指定默認值?
代碼段:
@GET
@Path("/rest/data")
@Produces(MediaType.APPLICATION.XML)
public Object getDataAsXML() {
// return data in XML format
}
@GET
@Path("/rest/data")
@Produces(MediaType.APPLICATION_JSON)
public Object getDataAsJSON() {
// return data in JSON format
}
干杯,
metalhamster
@Path("/myResource")
@Produces("text/plain")// doGetAsPlainText method defaults to the MIME type of the @Produces annotation at the class level.
public class SomeResource {
@GET
public String doGetAsPlainText() {
...
}
@GET
@Produces("text/html")
public String doGetAsHtml() {
...
}
}
doGetAsPlainText方法在類級別默認為@Produces批注的MIME類型。 doGetAsHtml方法的@Produces批注將覆蓋類級別的@Produces設置,並指定該方法可以生成HTML而不是純文本。
@GET
@Produces({"application/xml", "application/json"})
public String doGetAsXmlOrJson() {
...
}
如果可接受的媒體類型為“ application / xml”和“ application / json”,則將調用doGetAsXmlOrJson方法。 如果兩者均可接受,則將選擇前者,因為它首先出現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.