공개 API를 사용할 때 어떤 주소값을 사용하고 있는지

 

https://developers.kakao.com/docs/latest/ko/kakaotalk-social/rest-api

 

이런 곳

 

 

 

 

상속 관계라서 부모 클래스인 User를 참고해서 인스턴스를 만들어야 하는데,

User에 기본 생성자가 존재하지 않는다. 

 

 

 

부모 클래스인 User에 @NoArgsConstructor 를 추가한다.

모든 클래스에 대한 기본 생성자를 자동으로 생성해주는 어노테이션이다

그러면 오류가 사라진다.

(User에 직접 기본생성자 public User() {} 를 추가해주어도 상관없다.)

캡쳐에는 없지만 UserV2에도 기본 생성자를 추가해준다.

 

 

 

 

 

 

	//개별 조회
	//Get : /users/1 or /users/10 ... -> String
	// GET / admin/users/1 -> /admin/v1/users/1 (버전관리
	@GetMapping("/v1/users/{id}")
	public MappingJacksonValue retrieveUserv1(@PathVariable int id) {
		User user = service.findOne(id);
		
		if (user == null) {
			throw new UserNotFoundException(String.format("ID[%s] not found", id));
		}
		
		//어떤 bean을 대상으로 필터를 설정할 것인지
		SimpleBeanPropertyFilter filter = 
				SimpleBeanPropertyFilter.filterOutAllExcept("id", "name", "joinDate", "ssn");
		
		FilterProvider filters = new SimpleFilterProvider().addFilter("UserInfo", filter);
		
		MappingJacksonValue mapping = new MappingJacksonValue(user);
		mapping.setFilters(filters);
		
		return mapping;
	}
	
	//개별 조회
	//Get : /users/1 or /users/10 ... -> String
	// GET / admin/users/1 -> /admin/v1/users/1 (버전관리
	@GetMapping("/v2/users/{id}")
	public MappingJacksonValue retrieveUserv2(@PathVariable int id) {
		User user = service.findOne(id);
		
		if (user == null) {
			throw new UserNotFoundException(String.format("ID[%s] not found", id));
		}
		
		// User를 copy해서 -> User2에 담는다
		UserV2 userV2 = new UserV2();
		BeanUtils.copyProperties(user, userV2);	// id, name, joinDate, password, ssn
		userV2.setGrade("VIP"); 				// grade
		
		//어떤 bean을 대상으로 필터를 설정할 것인지
		SimpleBeanPropertyFilter filter = 
				SimpleBeanPropertyFilter.filterOutAllExcept("id", "name", "joinDate", "grade");
		
		FilterProvider filters = new SimpleFilterProvider().addFilter("UserInfoV2", filter);
		
		MappingJacksonValue mapping = new MappingJacksonValue(userV2);
		mapping.setFilters(filters);
		
		return mapping;
	}

+ Recent posts