DTO(Data Transfer Object)
DAO ->Data Access Object
ex)UserDao -> 데이터를 insert , findById ..(CRUD)
Object -> Java는 모든 것을 class에 담습니다 심지어 main()까지.
VO -Value Object 값이 들어있는 클래스
ex) Node -> key,value (Vo)
MemberDto 생성
public class MemberDto {
private String name;
private String email;
private String organization;
public MemberDto(String name, String email, String organization) {
this.name = name;
this.email = email;
this.organization = organization;
}
public String getName() {
return name;
}
public String getEmail() {
return email;
}
public String getOrganization() {
return organization;
}
@Override
public String toString(){
return String.format("%s %s %s",this.name,this.email,this.organization);
}
}
GET 과 POST 차이
1.가장 큰 차이점은 HTTP 요청을 할 때 파라미터를 path나 쿼리파라미터를 쓰지 않고 Request Body에 보낸다.
2.주로 회원가입 등 Http전송 중 노출되면 안되는 정보를 보낼 때 Post를 씁니다.
@RestController
@RequestMapping("/api/v1/post-api")
public class PostController {
@RequestMapping(value = "/domain", method = RequestMethod.POST)
public String postExample(){
return "Hello Post";
}
//@RequestBody의 사용
//Post에서는 @RequestBody를 주로 사용 합니다.
//json(등)형식으로 넘어온 데이터를 사용할 수 있게 해줍니다.
@PostMapping("/member")
public String postMember(@RequestBody Map<String , Object> postData){
StringBuilder sb = new StringBuilder();
postData.entrySet().forEach(map->sb.append(map.getKey()
+":"+map.getValue()+"\n"));
return sb.toString();
}
@PostMapping("/member2")
public String postMember2(@RequestBody MemberDto memberDto){
return memberDto.toString();
}
}
Post에서는 @RequestBody를 주요 사용 한다.
{
"name":"sim",
"email":"hbo@gmail.com",
"age":20
}
BODY에 값을 넣어서 전송해줘야 된다!

<String,Object>로 처리하는 이유? - 위와 같이 어떤 타입으로 데이터가 들어올지 Sever입장에서는 예측할 수 없기 때문에 Value를 Object로 처리한 경우 입니다. Object는 무엇이든 올 수 있습니다. 모든 자바 Class의 최상위 Class.
POST와 비슷하지만 주로 Update하는데 사용 한다.
GET /member – select from member between , limit 100 – list(목록)
GET /member/{id} – select from member where id = ?
POST /member — insert RequestBody
PUT /member — update RequestBody
DELETE /member
PATCH /member — put과 비슷
@PostMapping("/member2")
public String putMember2(@RequestBody MemberDto memberDto){
return memberDto.toString();
}

@PostMapping("/member3")
public ResponseEntity<MemberDto> putMember3(@RequestBody MemberDto memberDto){
return ResponseEntity
.status(HttpStatus.ACCEPTED)
.body(memberDto);
}

Swagger : API문서 자동 생성기
Spring Boot + Swagger 3.0.0 적용 (velog.io)
에러 나는 경우
(application.properties 를 application.yml로 이름 변경 필요)
application.yml에 아래와 같이 추가
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
pom.xml에 들어가서
< dependencies >.... < /dependencies > 사이에 작성한다
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
Swagger 위치
