在我的應用程式中,我使用 Spring MVC 共享 REST api,用戶可以在他們的自定義應用程式中使用這些 API。假設我在 Controller 類中有一個端點:
@GET
@Path("/getNumber")
@Produces({ MediaType.TEXT_PLAIN })
public String getNumber(Long id) {
return service.getNumber(id);
}
哪個回應僅作為 TEXT_PLAIN 可用。例如,如果其中一位客戶說當他以純文本形式獲得回應并且端點應該回傳 json/或應該有可能以 json 形式回傳回應時,他的應用程式將無法作業,會發生什么?因此,當我將另一個 MediaType 添加到注釋 @Produces 時,是否會導致使用此端點的其他用戶自定義應用程式出現問題?因為對于前。在他們的應用程式中,客戶端可能期望以純文本形式回應,并且通過以 json 形式獲取回應,回應將無法正確處理?如果添加此 MediaType 可能會導致問題,我該如何考慮使用此端點的用戶自定義應用程式?我是否應該創建類似的端點,但是這個端點將具有 MediaType APPLICATION_JSON,或兩者兼有,并為 ex 添加。端點路徑中的“/v2”,還是有更好的解決方案?
@GET
@Path("/v2/getNumber")
@Produces({ MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON })
public String getNumber(Long id) {
return service.getNumber(id);
}
uj5u.com熱心網友回復:
無需創建多個端點。您可以在 @Produces 中定義多個 mediaType。
為了決定應該發送哪個 MediaType 作為回應,客戶端必須在發出請求時在“Accept”標頭中設定他們期望的 MediaType 型別。
根據這個“接受”標頭,您可以決定回傳什么內容型別。
uj5u.com熱心網友回復:
您可以對多種媒體型別使用“consume”關鍵字
@GET(value = "/configuration", consumes = { MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE }) public String setConfiguration(@RequestPart MultipartFile 檔案, @RequestBody 配置配置)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/422671.html
標籤:
