I need advice from experienced developers regarding the software architecture of a project.
The need is to provide with a REST interface for an API so that a customer can :
1) authenticate themselves (this also involves handling account creation)
2) Issue get/add/update/delete() requests on resources (for example store a new book description [title+author..])
There is no need (for now) for WSDL or other complicated stuff. I’d say I prefer to avoid WSDL if possible, since I wont definitely use it. This won’t be used for a website, only API direct use.
I’ve read many things but need a clear status on the following :
– Would you use servlets or beans ?
– to handle authentication, is going stateful a good idea ? What’s the best and simple way to handle sessions ?
I’m looking for the easiest way to go, since my knowledge of J2EE is quite low at the moment.
Thanks for your time !
If the clients are going to be using a Web interface to get to your site, than a session based system is a better way to go. If it’s just going to be a service api used by programs, then use HTTP Authentication.
If you’re going for a service api, you would likely be best served by looking at one of the RESTy frameworks like JAX-RS. You can use this for an actual website, but it’s not typically used that way (so the examples don’t really match up to the domain).
If you’re doing a website, then look at one of the action frameworks like Stripes or Struts 2. These will allow you to bind to RESTy URLs, but they’re also great for doing web sites.
For any of these it would be better to have a base understand of Servlets, notably HTTP, the workflow, differences between redirects and forward, etc. since these frameworks leverage the basic Servlet model.
All of this can be done readily with raw Servlets, the frameworks just make things easier, and both the JAX-RS and Stripes/Struts 2 are pretty low impact to get going.