簡體   English   中英

如何指定Jersey的REST資源返回的默認MimeType

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM