모든 요청 매개 변수를 취하고 요청 매개 변수 값을 기반으로 결과를 반환하는 REST GET API를 정의했습니다. 아래처럼 :모든 요청 매개 변수가있는 Java REST API - 모범 사례
@GetMapping(produces = MediaType.APPLICATION_JSON_VALUE)
public List<Student> findAll(@RequestParam Map<String, String> allRequestParams) {
if(allRequestParams.isEmpty()) {
return studentRepository.findAll();
} else {
return studentService.findWithFilter(allRequestParams); // This method will take care of using appropriate findBy method on the repository
}
}
위의 코드는 모든 요청 매개 변수를 검색하는 Spring 방식을 사용하고 있습니다. 대신 HttpServletRequest
을 삽입하고 getParametersMap()
메서드를 사용하여 모든 요청 매개 변수를 가져올 수 있습니다. 몇 가지 질문이 있습니다.
- 스프링 방식을 사용하거나
getParameterMap()
을HttpServletRequest
에서 사용하는 것이 더 좋습니까? - 코드 검토에서 이런 종류의 프로그래밍이 안티 패턴이라고 들었습니까? 누군가가 왜 안티 패턴으로 간주되는지에 대해 밝힐 수 있습니까? 그리고 그것이 안티 패턴이라면, 이런 종류의 처리를 처리하는 가장 좋은 방법은 무엇입니까? 더 편리하기 때문에
메소드 이름은 거짓말입니다. 필터를 제공하면 모두 찾지 못합니다. 'findAll'은 필터를 받아 들여서는 안됩니다. 그런 필터 처리가 가능한'find'를 원한다면'findById' 나'findByName'과 같은 것을 추가하십시오. – Tom
Thanks @Tom. 합의했으나 이것은 프로덕션 코드가 아니며 여기서 사용 된 명명 규칙을 무시하십시오. – adi
프로그래밍의 종류 ... 주입 httpservletrequest ?? – prashant