From the perpective of Restful Apis, its said its a good choice to design them hierarchical when your database is hierarchical too, above all because the client learns and knows the hierarchical structure of the entities. I mean, for instance, if you have bank clients and accounts, the parent entity would be the clients and the child entities would be the accounts. So :
- To get the accounts from the client 1, a right URI could be something like "/clients/1/accounts"
From the perspective of Spring controllers, I should have a ClientController and a AccountController but
The AccountController should process the above request, right?
Could I specify and URI like "accounts/?clientId=1"? Its a bad design?
If I go with the option 1, how to specify this URI in the AccountsController?? If not, should I create another controller just for this and not put this URI in the Account controller?
@RequestMapping("/clients") public class ClientsController{ } @RequestMapping("/accounts") public class AccountsController{ @RequestMapping("/clients/{idClient}/accounts") => **I cannot specify an absolute path here because its relative to the RequestMapping annotation in the Controller** @GetMapping public @ResponseBody List<Account> getAccounts(){} }
Thanks!!