Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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 将GET和POST服务合并为一个?_Java_Rest - Fatal编程技术网

Java 将GET和POST服务合并为一个?

Java 将GET和POST服务合并为一个?,java,rest,Java,Rest,我有两个使用JERSEY api编写的控制器。我可以很好地运行这两个服务,但我想在同一个ImageApi控制器下加入这两个服务,从而消除SubmitFileController。是否可能在同一个控制器中有@Get method和@POST?它将如何处理不同的路径 当前它的:server/image/getPictureById和server/submitFile(使用post) 代码: @Path("/image") public class ImageApi extends ServiceAP

我有两个使用JERSEY api编写的控制器。我可以很好地运行这两个服务,但我想在同一个ImageApi控制器下加入这两个服务,从而消除SubmitFileController。是否可能在同一个控制器中有@Get method和@POST?它将如何处理不同的路径

当前它的:
server/image/getPictureById
server/submitFile
(使用post)

代码:

@Path("/image")
public class ImageApi extends ServiceAPI{   
    @Path("/getPictureById/{imageId}")
    @GET
    @Produces("image/png")
    public Response getPictureById(@PathParam("imageId") String imageId){}
此映像服务从服务API获取上下文:

public class ServiceAPI {
    @Context 
    private ServletContext context;
    public ServletContext getContext() {return context;}
    public void setContext(ServletContext context) {this.context = context;}
}           


是否可能在同一个控制器中有@Get method和@POST

它将如何处理不同的路径

如果在GET方法上方有
@Path(“/image/getPictureById/”
),则
/image/getPictureById/
将附加到控制器的@Path注释(如果注释存在)。因此,除非将控制器的@path注释移到POST方法(在这种情况下,http API将保持不变),否则路径将变为
server/submitFile/image/getPictureById/

注意:如果您愿意(这里似乎不适用),您可以在完全相同的路径上处理GET和POST请求


将GET和POST服务合并为一个?但为什么?“有可能在同一个控制器中有Get方法和POST吗?”是的。“它将如何处理不同的路径?”路径可能完全相同,这取决于用户是发送GET还是POST,它将转到正确的方法。那么,如何同时保留像server/submitFile/#和server/image/getPictureById这样的URL呢?你能添加示例代码吗?不要把@Path放在类上面,只放在方法上面。(我要说的是,在同一个类中存在如此不同的路径看起来有点滑稽,我只是展示了它是如何可能的,但不一定是“好的”。)
@Path("/submitFile")
public class SubmitFileController {

    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response uploadFile(
            @FormDataParam("file") InputStream uploadedInputStream,
            @FormDataParam("file") FormDataContentDisposition fileDetail) {}
public class Controller {
    @Path("/submitFile")
    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response uploadFile(
        @FormDataParam("file") InputStream uploadedInputStream,
        @FormDataParam("file") FormDataContentDisposition fileDetail) {}

    @Path("/image/getPictureById/{imageId}")
    @GET
    @Produces("image/png")
    public Response getPictureById(@PathParam("imageId") String imageId){}