Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Advice on using separate controllers for a REST API or not?

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?

like image 477
Marco Avatar asked Sep 25 '12 08:09

Marco


1 Answers

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.

like image 136
Ruben Avatar answered Oct 26 '22 12:10

Ruben