입력 값 제한

DTO → 도메인 객체로 값 복사

<dependency>
    <groupId>org.modelmapper</groupId>
    <artifactId>modelmapper</artifactId>
    <version>2.3.1</version>
</dependency>

테스트 할 것

입력 값으로 누가 id나 그런 값을 주면

@Data @Builder @NoArgsConstructor @AllArgsConstructor
public class EventDto {

	private String name;
	private String description;
	private LocalDateTime beginEnrollmentDateTime;
	private LocalDateTime closeEnrollmentDateTime;
	private LocalDateTime beginEventDateTime;
	private LocalDateTime endEventDateTime;
	private String location;
	private int basePrice;
	private int maxPrice;
	private int limitOfEnrollment;
}

ModelMapper 빈 등록

@SpringBootApplication
public class RestapiexApplication {

	public static void main(String[] args) {
		SpringApplication.run(RestapiexApplication.class, args);
	}

	@Bean
	public ModelMapper modelMapper() {
		return new ModelMapper();
	}
}
@RestController
@RequestMapping(value = "/api/events", produces = MediaTypes.HAL_JSON_UTF8_VALUE)
public class EventController {

	private final EventRepository eventRepository;

	private final ModelMapper modelMapper;

	public EventController(EventRepository eventRepository, ModelMapper modelMapper) {
		this.eventRepository = eventRepository;
		this.modelMapper = modelMapper;
	}

	@PostMapping
	public ResponseEntity createEvent(@RequestBody EventDto eventDto) {
		Event event = modelMapper.map(eventDto, Event.class);
		Event newEvent = eventRepository.save(event);
		URI createdUri = linkTo(EventController.class).slash(newEvent.getId()).toUri();
		return ResponseEntity.created(createdUri).body(newEvent);
	}

}