私が取り組んでいるRESTAPIに関して、いくつかの設計上の選択をしようとしていると思います。
-クロスサイトアクセスを提供することは良い考えですか?言い換えれば、JSONP応答を許可する必要があります。JSONPを許可しないと、ブラウザーで実行されているjavascriptクライアントがAPIにアクセスできなくなると推測しているため、JSOP応答を提供することに傾倒しています。このアイデアに賛成または反対の経験があれば、よろしくお願いします。
-Jerseyを使用すると、メソッドにaの注釈を付け、@Produces("application/javascript")
のインスタンスを返すことでJSONP応答を提供できます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);
}
上記の例は機能しますが、代わりにどのように返すかがわかりませんjavax.ws.rs.core.Response
(Jerseyは、をインスタンス化すると例外をスローしますJSONWithPadding(response, callback)
。
したがって、メタ情報をクライアントに返す必要がある場合は、独自のバージョンの応答クラスを考案する必要があると思いますか?