Spring Boot で API を作ると、入力検証とエラー応答はかなり早い段階で必要になります。
対象コード:
- RegistrationController.java
- RegistrationService.java
- ApiErrorHandler.java
- RegistrationControllerTest.java
- RegistrationServiceTest.java
POST /registrationsで登録を受け付ける@Validでnameとemailを検証する- 重複 email は
409 Conflictで返す - validation error を JSON で整形して返す
spring-boot-starter-validation@Valid@RestControllerAdviceMethodArgumentNotValidException- HTTP レイヤーのエラー契約をテストで固定する方法
- service は素の Java テストで重複ルールを検証する
- controller は
@WebMvcTestで validation とレスポンス契約を検証する