我想我正在尝试对我正在处理的 REST API 做出一些设计选择。
- 提供跨站点访问是个好主意吗?换句话说,我是否应该允许JSONP响应。我倾向于提供 JSOP 响应,因为我猜测如果我不允许 JSONP,那么在浏览器中运行的 javascript 客户端将无法访问我的 API。如果您有任何支持或反对这个想法的经验,我将不胜感激。
- 使用 Jersey,我可以通过使用 a 注释我的方法@Produces("application/javascript")
并返回JSONWithPadding
. 像这样:
@GET
@Produces("application/javascript")
@Path("{film_id}")
public JSONWithPadding crossSitefilmWithID(
@DefaultValue(NO_ID) @PathParam("film_id") final String filmId,
@DefaultValue(CALLBACK) @QueryParam("callback") String callback) {
....
return new JSONWithPadding(films.get(id), callback);
}
上面的示例有效,但我不知道如何返回 a javax.ws.rs.core.Response
(当我实例化 a 时,Jersey 抛出异常JSONWithPadding(response, callback)
。
所以我猜如果我需要向客户端返回元信息,我需要设计自己的响应类版本吗?