Re: Use Wicket as a REST API
Hi, I'd definitely recommend using IResource for something like this. Also check https://github.com/bitstorm/Wicket-rest-annotations. It will be merged to WicketStuff soon. On Thu, Aug 15, 2013 at 1:03 AM, Bas Gooren b...@iswd.nl wrote: Hi, Yes, what you are doing is a perfectly ok way to handle this. Optionally you could use a shared resource for this, but I say that's just a matter of preference. We use something inspired by https://code.google.com/p/**wicket-rest/https://code.google.com/p/wicket-rest/ This gives you some abstraction over the json (or xml/...) handling. Furthermore you can override sensible methods like doGet or doPost which clearly communicate intent. Met vriendelijke groet, Kind regards, Bas Gooren Op 14-8-2013 20:32, schreef robianmcd: I found that this works but I'm not sure if there is a better way of doing this: @MountPath(value = /api/my/rest/url) public class MyPostHandler extends SecureWebPage { public MyPostHandler () { final WebRequest webRequest = (WebRequest) getRequest(); final HttpServletRequest rawRequest = (HttpServletRequest) webRequest.**getContainerRequest(); if (rawRequest.getMethod().**equalsIgnoreCase(POST)) { BufferedReader br; try { br = rawRequest.getReader(); String jsonString = br.readLine(); //Do something with the JSON here } catch (IOException e) { } } } } -- View this message in context: http://apache-wicket.1842946.** n4.nabble.com/Use-Wicket-as-a-**REST-API-tp4660894p4660898.**htmlhttp://apache-wicket.1842946.n4.nabble.com/Use-Wicket-as-a-REST-API-tp4660894p4660898.html Sent from the Users forum mailing list archive at Nabble.com. --**--**- To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.orgusers-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Use Wicket as a REST API
What would the advantage be of using a resource instead of a page? I'll take a look a wicket-rest-annotation. Thanks -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Use-Wicket-as-a-REST-API-tp4660894p4660919.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Use Wicket as a REST API
I guess you expect JSON response for Angular's needs. Pages usually produce HTML response. On Thu, Aug 15, 2013 at 5:43 PM, robianmcd robian...@gmail.com wrote: What would the advantage be of using a resource instead of a page? I'll take a look a wicket-rest-annotation. Thanks -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Use-Wicket-as-a-REST-API-tp4660894p4660919.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Use Wicket as a REST API
Yeah I was using this function to send JSON from a page. protected void setJsonResponse(final String jsonString, final Duration cacheDuration) { getRequestCycle().scheduleRequestHandlerAfterCurrent(new IRequestHandler() { @Override public void respond(IRequestCycle requestCycle) { AbstractResourceStreamWriter rstream = new AbstractResourceStreamWriter() { private static final long serialVersionUID = 1L; @Override public void write(OutputStream output) throws IOException { output.write(jsonString.getBytes()); } @Override public String getContentType() { return MimeType.JSON.toString(); } }; ResourceStreamRequestHandler handler = new ResourceStreamRequestHandler(rstream); handler.setContentDisposition(ContentDisposition.INLINE); handler.setCacheDuration(cacheDuration); getRequestCycle().scheduleRequestHandlerAfterCurrent(handler); } @Override public void detach(IRequestCycle requestCycle) { // Do nothing here, move along... } }); } Maybe resources have a better way of doing it though so I'll try doing it with a resource. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Use-Wicket-as-a-REST-API-tp4660894p4660921.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Use Wicket as a REST API
I need Wicket to respond to a post request from AngularJS. I set up a page in wicket like this but the request parameters are always empty @MountPath(value = /api/my/rest/url) public class MyPostHandler extends SecureWebPage { public MyPostHandler () { final WebRequest webRequest = (WebRequest) getRequest(); final HttpServletRequest rawRequest = (HttpServletRequest) webRequest.getContainerRequest(); if (rawRequest.getMethod().equalsIgnoreCase(POST)) { webRequest.getRequestParameters().getParameterNames(); //Returns an empty list webRequest.getPostParameters().getParameterNames(); //Returns an empty list } } } The AngularJS code that is sending the POST request looks like this: $http.post('/api/my/rest/url', {some:data, other:stuff}); Any idea what's going wrong here? Thanks! -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Use-Wicket-as-a-REST-API-tp4660894.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Use Wicket as a REST API
I found that this works but I'm not sure if there is a better way of doing this: @MountPath(value = /api/my/rest/url) public class MyPostHandler extends SecureWebPage { public MyPostHandler () { final WebRequest webRequest = (WebRequest) getRequest(); final HttpServletRequest rawRequest = (HttpServletRequest) webRequest.getContainerRequest(); if (rawRequest.getMethod().equalsIgnoreCase(POST)) { BufferedReader br; try { br = rawRequest.getReader(); String jsonString = br.readLine(); //Do something with the JSON here } catch (IOException e) { } } } } -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Use-Wicket-as-a-REST-API-tp4660894p4660898.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Use Wicket as a REST API
Hi, Yes, what you are doing is a perfectly ok way to handle this. Optionally you could use a shared resource for this, but I say that's just a matter of preference. We use something inspired by https://code.google.com/p/wicket-rest/ This gives you some abstraction over the json (or xml/...) handling. Furthermore you can override sensible methods like doGet or doPost which clearly communicate intent. Met vriendelijke groet, Kind regards, Bas Gooren Op 14-8-2013 20:32, schreef robianmcd: I found that this works but I'm not sure if there is a better way of doing this: @MountPath(value = /api/my/rest/url) public class MyPostHandler extends SecureWebPage { public MyPostHandler () { final WebRequest webRequest = (WebRequest) getRequest(); final HttpServletRequest rawRequest = (HttpServletRequest) webRequest.getContainerRequest(); if (rawRequest.getMethod().equalsIgnoreCase(POST)) { BufferedReader br; try { br = rawRequest.getReader(); String jsonString = br.readLine(); //Do something with the JSON here } catch (IOException e) { } } } } -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Use-Wicket-as-a-REST-API-tp4660894p4660898.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org