JaBudget Spring Rest exponiert die Business Services als Rest-Schnittstelle. Das Datenformat ist application/json.
Die Controller sind unter /rest zu erreichen.
(TODO: alle Exceptions fangen und in "Server-Errors" umwandlen.)
Erstellen eines Accounts. Liefert die erstellte Entität zurück. Ist die Entität bereits vorhanden wird der HttpStatus 422 zurückgeliefert.
curl -H "Content-Type: application/json" -d '{"id":4711, "name":"peter"}' http://localhost:8080/rest/accountsUpdate eines Accounts. Die im Account enthaltene id wird ignoriert. Ist die Entität nicht vorhanden wird der HttpStatus 404 zurückgeliefert.
Erstellen eines Accounts-Entries. Liefert die erstellte Entität zurück. Ist die Entität bereits vorhanden wird der HttpStatus 422 zurückgeliefert. TODO Status, wenn Account nicht vorhanden.
curl -H "Content-Type: application/json" -d '{"accountId":4711, "code":"EE1", "subject":"Umbuchung" }' http://localhost:8080/rest/accounts/4711/entriesÜber den SerialisationController lässt sich die gesamte Domäne laden und speichern.
Die Integrationstests auf dieser Ebene müssen nur testen, dass das Binding durch Spring korrekt konfiguriert ist. Dazu wird spring-test mit spring-webmvc verwendet. Dies hat den Vorteil, dass kein Servlet-Container hochgefahren werden muss und die Tests damit sehr schnell laufen. End-To-End-Tests mit Servlet-Conatinern werden der jeweiligen Applikation überlassen (z.B. SpringBoot).