0

私は安らかなサービスを利用しています。私が観察したことは、同じエンドポイントに対して複数の応答が見られる要求に基づいています。

例: PDF ドキュメントのいくつかのパラメーターを使用して GET 呼び出しを要求します。応答が良好で、コンテンツ タイプが application/pdf の場合、pdf ドキュメントが生成されます。

ドキュメントが利用できない場合、コンテンツ タイプは application/xml であり、応答にはエラー コードとエラーの説明が含まれます。

ご意見をお待ちしております。

ありがとう、サディア。

4

1 に答える 1

-1

Spring の ResponseEntity クラスを使用できます。必要なオブジェクトを返すようにクラスを設定できます。コンテンツの種類など、必要なものはすべて変更できます。

ここにファイルの例があります

@RequestMapping(value = URIConstansts.GET_FILE, produces = { "application/json" }, method = RequestMethod.GET)
public @ResponseBody ResponseEntity getFile(@RequestParam(value="fileName", required=false) String fileName,HttpServletRequest request) throws IOException{

    ResponseEntity respEntity = null;

    byte[] reportBytes = null;
    File result=new File("/home/arpit/Documents/PCAP/dummyPath/"+fileName);

    if(result.exists()){
        InputStream inputStream = new FileInputStream("/home/arpit/Documents/PCAP/dummyPath/"+fileName);
        String type=result.toURL().openConnection().guessContentTypeFromName(fileName);

        byte[]out=org.apache.commons.io.IOUtils.toByteArray(inputStream);

        HttpHeaders responseHeaders = new HttpHeaders();
        responseHeaders.add("content-disposition", "attachment; filename=" + fileName);
        responseHeaders.add("Content-Type",type);

        respEntity = new ResponseEntity(out, responseHeaders,HttpStatus.OK);
    }else{
        respEntity = new ResponseEntity ("File Not Found", HttpStatus.OK);
    }
    return respEntity;
}

ここにJsonの例があります

@ResponseBody ResponseEntity<? extends AbstractResponse> createUser(@RequestBody String requestBody) {
    if(!valid(requestBody) {
        ErrorResponse errResponse = new ErrorResponse();
        //populate with error information
        return new ResponseEntity<ErrorResponse> (errResponse, HTTPStatus.BAD_REQUEST);
    }
    createUser();
    CreateUserSuccessResponse successResponse = new CreateUserSuccessResponse();
    // populate with more info
    return new ResponseEntity<CreateUserSuccessResponse> (successResponse, HTTPSatus.OK);
}
于 2015-12-02T19:51:20.717 に答える