使用REST API创建或列出项目时,我也返回整个资源路径。Spring MVC请求映射 - 完整请求URI
例如创建人员记录返回http://service:9000/person/1234
作为回应。为了获得架构,主机&端口部分像http://service:9000
,我从URL获取的HttpServletRequest.getRequestURL()
。
示例(不是生产代码,但在概念上相同):
@RequestMapping(value = "/person", method = RequestMethod.PUT)
public Object putPerson(
@RequestParam(value = "name") String name,
HttpServletRequest req) {
long id = createPerson(name);
String uriStart = RestUtils.getSchemeHostPortUrlPart(req
.getRequestURL().toString());
String uri = uriStart + "/person/" + id;
Person person = new Person(name, id, uri);
return person; //Serialized to json by Spring & Jackson
}
//Simple bean-like class
public class Person {
//Getter methods for uri, name & id
}
由于这是一个相当锅炉板代码重复每一个方法,如果春节不具备这里面躲避我的时候支持我想知道读它的文档。
通过这个我的意思是访问任何URL没有requiredn HttpServletRequest
或甚至更好它的架构,主机,端口部分只。
你能更新,以显示您正在使用的URL做什么的? – 2014-12-04 11:39:04
如果是为了认真的工作,**谨慎**:在现实世界中,由于反向代理背后的安全原因,应用服务器通常是隐藏的:应用服务器已知的主机端口是**而不是用户使用的端口。反向代理尽最大努力应对,但要警惕空洞...... – 2014-12-04 13:56:06