【发布时间】:2013-02-22 02:06:12
【问题描述】:
我想我正在尝试对我正在开发的 REST API 做出一些设计选择。
-提供跨站点访问是个好主意吗?换句话说,我应该允许JSONP 回复吗?我倾向于提供 JSOP 响应,因为我猜测如果我不允许 JSONP,那么在浏览器中运行的 javascript 客户端将无法访问我的 API。如果您对这个想法有任何支持或反对的经验,我将不胜感激。
-使用 Jersey,我可以通过使用 @Produces("application/javascript") 注释我的方法并返回 JSONWithPadding 的实例来提供 JSONP 响应。像这样:
@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);
}
上面的示例有效,但我不知道如何返回 javax.ws.rs.core.Response(当我实例化 JSONWithPadding(response, callback) 时,Jersey 会抛出异常。
所以我猜如果我需要向客户端返回元信息,我需要设计自己的响应类版本?
【问题讨论】: