we are planning a REST api for our application and are trying to make a decision on if we should implement separate controllers for the REST functionality or not.
We could use the withFormat{} in our current controllers but separating the REST functionality in different controllers feels somewhat cleaner..
In that way we can build our API seperate from the current controllers and we could even take the REST controllers into another application etc.
Any thoughts on this subject? Any real world experience in what the best practice would be?
We recently faced the same decision and we decided to go for separate controllers for the REST API.
Advantages of separate controllers include cleaner/clearer controller actions and the possibility to support different versions of the REST API later on.
We also would like to keep the option to host the REST API on separate server instances open. These servers would use exactly the same .war, but with different configuration settings for the feature toggles.
A disadvantage of separate controllers might be the DRYness of the controller code. Although this should be limited, since IMHO you should keep the controllers as thin as possible and extract shared logic to Grails services or helper classes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With