JAXRSでPostだとこんな感じでパラメータをObjectで受けれるじゃないですか、
@POST @Consumes(MediaType.APPLICATION_JSON) public Response login(LoginForm form) {
これをGetでもやりたいとおもったら結構困ったのでメモ
普通のGetはこんな感じ。そもそもGetなのでデータはクエリパラメータで受けるしかないです。
@Get public Response get() {
クエリパラメータを受けるには@QueryParamとかで受けるんですが以下のようにしただけじゃパラメータ解析してくれない。
@Get public String get(@QueryParam("auth") Auth auth) {
とはいえStringでうけとった値を各Getの中で解析するのはめんどくさいなとおもっていたら
受け取るVOのなかにvalueOfもしくはfromStringという名のstaticファクトリメソッドをがあれば良いということがわかった。
なのでAuthをこんな感じにしてあげればOK!
public class Auth { private String code; private String state; public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getState() { return state; } public void setState(String state) { this.state = state; } public static Auth valueOf(String value) { return data = JSON.decode(value, Auth.class); } }
色々便利なのね-