使用Spring的HATEOAS支持时,我非常喜欢AnnotationMappingDiscoverer
,这有助于避免在测试中对REST资源路径进行硬编码。有了它,我可以做像
discoverer = new AnnotationMappingDiscoverer(RequestMapping.class);
Method method = MyController.class.getMethod("myResourceMethod", params);
String path = discoverer.getMapping(method);
然后使用path
作为测试中的资源路径。比必须与控制器类和方法注释保持同步的测试中的硬编码路径要好得多。
RESTEasy有什么类似的东西吗?
答案 0 :(得分:2)
您可以使用UriBuilder:
假设有以下课程:
@Path("persons")
public class PersonResource {
@Path("/{id}")
public Response get(@PathParam("id") String id) {
//
}
}
你会得到这样的道路:
URI path = UriBuilder.fromResource(PersonResource.class)
.path(PersonResource.class, "get")
.build("4711");
// path = /persons/4711