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/accounts
Update 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).