Spring/spring_old
08. MVC Controller 생성
slow333
2023. 1. 26. 17:16
@PostMapping과 @PutMapping 은 @RequestBody를 통해 내용을 전달
@GetMapping은 @PathVariable 또는 @RequestParam을 통해 내용을 전달 (url에 내용을 포함해서 전달)
controller class에 @RequestMapping("/공통 이름")을 하면 안에서는 그 다음 부터 적으면됨
Rest(json)을 이용한 annotation은 @RestController
ClubController
@RestController
//@RequiredArgsConstructor
@RequestMapping("/clubs")
public class ClubController {
private final ClubService clubService;
@Autowired
public ClubController(ClubService clubService) {
this.clubService = clubService;
}
@PostMapping // body에 내용이 담겨서 옮
public String register(@RequestBody ClubCdo clubCdo) {
return clubService.registerClub(clubCdo);
}
@GetMapping("/{clubId}")
public Optional<Club> findClub(@PathVariable String clubId) {
return clubService.findClubById(clubId);
}
@GetMapping("/all")
public List<Club> findAll() {
return clubService.findAll();
}
@GetMapping
public List<Club> findByName(@RequestParam String name) {
return clubService.findClubsByName(name);
}
@GetMapping("/containingName")
public List<Club> findByNameAll(@RequestParam String name) {
return clubService.findClubsByNameContaining(name);
}
@PutMapping("/{clubId}") // body에 내용이 담겨서 옮
public void modify(@PathVariable String clubId,@RequestBody NameAndValueList nameAndValueList) {
clubService.modifyClub(clubId, nameAndValueList);
}
@DeleteMapping("/{clubId}")
public void delete(@PathVariable String clubId) {
clubService.removeClub(clubId);
}
}
MemberController
@RestController
@RequestMapping("/members")
public class MemberController {
private MemberService memberService;
@Autowired
public MemberController(MemberService memberService) {
this.memberService = memberService;
}
@PostMapping
public String register(@RequestBody MemberCdo memberCdo) {
return memberService.registerMember(memberCdo);
}
@GetMapping("/{memberId}")
public Optional<Member> findMember(@PathVariable String memberId) {
return memberService.findMemberById(memberId);
}
@GetMapping("/all")
public List<Member> findAll() {
return memberService.findAll();
}
@GetMapping
public List<Member> findByName(@RequestParam String name) {
return memberService.findMemberByName(name);
}
@PutMapping("/{memberId}") // body에 내용이 담겨서 옮
public void modify(@PathVariable String memberId,@RequestBody NameAndValueList nameAndValueList) {
memberService.modifyMember(memberId, nameAndValueList);
}
@DeleteMapping("/{memberId}")
public void delete(@PathVariable String memberId) {
memberService.removeMember(memberId);
}
}
json 시험 데이터 생성(entity 객체에)
public static Member sample() {
Member member = new Member("myvms@vms.com", "저녁은 뭐지?", "010-3321-1001","fishburn","2004.02.22");
// member.setBirthDay("2003.01.07");
// member.getAddresses().add(Address.sampleHomeAddress());
// member.getAddresses().add(Address.sampleOfficeAddress());
return member;
}
public static void main(String[] args) {
//
System.out.println(new Gson().toJson(sample()));
NameAndValueList memberList = new NameAndValueList();
memberList.addNameValue("name", "changed member name");
memberList.addNameValue("phoneNumber", "010-3333-7896");
System.out.println(new Gson().toJson(memberList));
}
public static Club sampleClub(){
return new Club("spring club", "처음으로 생성하는 클럽 입니다.");
}
public static void main(String[] args) {
System.out.println(sampleClub());
NameAndValueList list = new NameAndValueList();
list.addNameValue("name", "changed 클럽 name ~~~");
list.addNameValue("intro", "변경된 클럽 이름 입니다. 되나");
System.out.println(new Gson().toJson(list));
}