使用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