Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过相同的rest服务生成2个不同媒体类型的单独响应_Java_Spring Boot - Fatal编程技术网

Java 通过相同的rest服务生成2个不同媒体类型的单独响应

Java 通过相同的rest服务生成2个不同媒体类型的单独响应,java,spring-boot,Java,Spring Boot,有没有办法,我可以通过相同的rest服务生成两个不同媒体类型的单独响应 我有一个使用JSON并生成JSON的服务 现在,我希望使用相同的方法为pdf生成byte[]或UserModel,因此定义如下 @RequestMapping(value="/getUser/{userId}", produces = {"application/pdf","application/json"}, consumes = {"application/json"}, method = Re

有没有办法,我可以通过相同的rest服务生成两个不同媒体类型的单独响应

我有一个使用JSON并生成JSON的服务

现在,我希望使用相同的方法为pdf生成
byte[]
UserModel
,因此定义如下

@RequestMapping(value="/getUser/{userId}",
    produces = {"application/pdf","application/json"},
    consumes = {"application/json"},
    method = RequestMethod.GET)
    public ResponseEntity<UserModel> getUser(@PathVariable("userId")String userId){

    //returns UserModel JSON 

    and can return
    //returns bye[] and I generate pdf from the stream
    }
@RequestMapping(value=“/getUser/{userId}”,
生成={“application/pdf”、“application/json”},
使用={“应用程序/json”},
method=RequestMethod.GET)
公共响应属性getUser(@PathVariable(“userId”)字符串userId){
//返回UserModelJSON
而且可以回来
//返回bye[]并从流生成pdf
}

由于API调用命中模式与相同参数相同,我如何动态决定生成哪一个。我可以很容易地创建另一个方法使其工作,但我想知道如何在spring boot中实现
products=“application/pdf”,“application/json”},
,因为两者都是完全不同的类型。

创建两个方法,映射到相同的URL和相同的HTTP方法。一个是products=application/pdf,另一个是products=application/json。一个返回用户模型,另一个返回字节数组。这是spring项目吗?您可以使用Accept头策略,或者在这里:创建两个方法,映射到相同的URL和相同的HTTP方法。一个是products=application/pdf,另一个是products=application/json。一个返回用户模型,另一个返回字节数组。这是spring项目吗?您可以使用Accept header策略,或在此处: