Tworzę dwa projekty - jeden jako backend czyli REST, baza danych, kontrolery, logika i drugi, który będzie opierał się na MVC i konsumował to co rest zwróci
Czy w ogóle czytałeś coś o Springu? Bo to co zacytowałem świadczy, że nie bardzo masz pojęcie o czym piszesz. REST jest to podejście wykorzystujące zapytania HTTP, jeśli byś był łaskawy spojrzeć na Spring MVC to zobaczyłbyś, że kontrolery mają adnotację @RequestMapping w której konfigurujesz np. dla jakiego zapytania HTTP konkretna metoda jest wywoływana.
Przykład:
@Controller
@RequestMapping(value = "/actors")
public class ActorController {
@RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public List<ActorDTO> findAll() {
return MapperHelper.mapToList(actorToDtoLazyMapper, actorService.findAll());
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ActorDTO find(@PathVariable long id) throws ResourceNotFoundException {
return actorToDtoMapper.map(actorService.find(id));
}
@RequestMapping(method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ActorDTO create(@Valid @RequestBody ActorDTO actorDTO) {
Actor actor = new Actor(actorDTO.getFirstName(), actorDTO.getLastName());
return actorToDtoMapper.map(actorService.create(actor));
}
@RequestMapping(value = "/{id}", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ActorDTO edit(@Valid @RequestBody ActorDTO actorDTO, @PathVariable long id) throws ResourceNotFoundException {
actorDTO.setId(id);
Actor newActor = dtoToActorMapper.map(actorDTO);
return actorToDtoMapper.map(actorService.update(newActor));
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public void delete(@Valid @PathVariable long id) throws ResourceNotFoundException {
actorService.delete(id);
}
}