gpt4 book ai didi

java - Rest Api 中的两个类可以有相同的路径吗?

转载 作者:行者123 更新时间:2023-12-02 10:51:59 25 4
gpt4 key购买 nike

是否可以为两个类定义相同的路径?

@Path("/resource")    
public class ResourceA{
..
..
}

@Path("/resource")
public class ResourceB(){
..
..
}

最佳答案

这是可能的。请参阅JAX-RS Spec 3.7.2 Request Matching 。通俗地说,规范规定将所有匹配的根资源类放入一个集合中,然后将这些类中的所有匹配方法放入一个集合中。然后排序。因此,如果资源类级别@Path相同,它们都会被放入集合中进行进一步处理

您可以轻松测试这一点,正如我在下面所做的那样(使用 Jersey Test Framework )

public class SamePathTest extends JerseyTest {

@Test
public void testSamePaths() {
String xml = target("resource").request()
.accept("application/xml").get(String.class);
assertEquals("XML", xml);
String json = target("resource").request()
.accept("application/json").get(String.class);
assertEquals("JSON", json);
}

@Path("resource")
public static class XmlResource {
@GET @Produces(MediaType.APPLICATION_XML)
public String getXml() { return "XML"; }
}

@Path("resource")
public static class JsonResource {
@GET @Produces(MediaType.APPLICATION_JSON)
public String getJson() { return "JSON"; }
}

@Override
public Application configure() {
return new ResourceConfig(XmlResource.class, JsonResource.class);
}
}

关于java - Rest Api 中的两个类可以有相同的路径吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31301680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com