Ich habe derzeit ein Projekt mit einem Spring-Controller und Thymeleaf, um eine kleine Browser-App zu erstellen. Die Controller-Klasse deklariert alsSpring MVC, Thymeleaf & REST
@Controller public class MyController {
Innerhalb der Controller habe ich einen GET definiert als
@RequestMapping(value = "/foobars", method = RequestMethod.GET)
String index(Model model, --- more params ---) {
//call repository and get foobarsList
//model.addAttribute("foobars", foobarsList);
...
return "foobars/foobarThymeleafTemplate"
}
Der Anruf Repository und bekommen foobarList ist ein Aufruf einer MongoRepository wie folgt definiert:
public interface FoobarRepository extends MongoRepository< ... cut for brevity> {
@RestResource(rel = "by-id")
Marker findMarkerById(String id);
... additional @RestResources cut for brevity ...
}
Wieder der Br Owser App sieht gut aus. Die GET ruft das Repository, füllt das Modell mit der Liste der Foobars und Thymeleaf macht es Sache mit dieser Liste.
PROBLEM: Jetzt muss ich von einer Android App, die gleichen Daten zugreifen, und ich würde es vorziehen, REST zu verwenden und nur konsumieren JSON in der Android App. Ich möchte Thymeleaf behalten, werde aber die Browser-App bei Bedarf umgestalten.
FRAGE: Gibt es eine Möglichkeit, den gleichen @Controller irgendwie zu verwenden, oder muss ich einen zweiten FoobarRestController mit @RestController mit/RestFoobars Endpunkten verwalten? Der zweite REST-Controller funktioniert sicher, aber es scheint irgendwie schlampig ... schlechtes Design.
Ihre Gedanken und Empfehlungen?
Nochmals vielen Dank. -Rich
Obwohl Sie dies vor zwei Jahren geantwortet haben, und ich stimme der Verwendung einer kompletten Rest API für das Back-End und dann mit einem Javascript-Framework für das Front-End sollte logisch sein, was die Gemeinschaft anstreben sollte, aber es gibt noch fast keine Fragen auf stackoverflow und immer noch fast keine dokumentationen oder tutorials, wie dies zu tun ist, ist die java community sehr resistent zu ändern, oder das funktioniert auf lange sicht nicht so gut, was denkst du? –