REST
PATH organization:
GET - /app-name (or main entity name)/ - list of all
GET - /app-name/id - list of 1
POST- /app-name/ - Add entity
DELETE-/app-name/id - delete entity
App structure:
Class - Entity
Class - EntityDTO - Optional
Class - EntityRepository (extends JpaRepository) - communicate with DB / OR DAO
Class - EntityController
Class - EntityServiceApplication - SpringBootApplication
Validation:
POST: Add constrains in entity (@Max, @Min, @Size), add @Valid - for @RequestBody
GET: Add @Validated for controller class, add constrains for @PathVariable
@PathVariable(required = false) - for optional
How to pass and validate dates?
To Pass:
1. Convert Date Parameters on Request Level
@RequestParam("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date date
@RequestParam("date") @DateTimeFormat(pattern = "dd.MM.yyyy") Date date
2. Configure Date-Time in Properties File
spring.mvc.format.date=yyyy-MM-dd
spring.mvc.format.date-time=yyyy-MM-dd HH:mm:ss
spring.mvc.format.time=HH:mm:ss
OR
spring.mvc.format.date-time=iso