티스토리 뷰
RestAPI만들때 규칙
RestAPI를 만들 때 URI에 행위가 들어가면 안됩니다.
예를들어 /putItem, /updateItem 이런식으로 put, update등의 행위가 들어가지 않도록 하는게 표준입니다.
그리고 _ 언더바를 쓰지 않습니다. -하이픈은 사용 합니다.
도메인 디자인
RestAPI를 만들기 위해서는 먼저 Domain을 만들어야 합니다. 이 도메인이 기준이 되기 때문입니다.
@Getter
@Setter
public class Product {
private long id;
private String name;
private LocalDateTime updated;
}
API 정의서 작성
사용자 요청 | URL | 메소드 | Path | body |
전체 목록 조회 | /all | GET | ||
등록 | /add | POST | /add | json |
수정 | /update | PUT | /update/{id} | json |
삭제 | /delete | DELETE | /delete/{id} |
1.PathVariable사용하기
PathVariable은 http://localhost:8080/hello/1 이렇게 주소에 바로 값을 넘긴 것을 받을 때 사용 합니다. /hello/{id} 로 해주면 id라는 이름의 파라메터로 받을 수 있습니다.
@GetMapping(value = "/hello/{id}")
public String hello(@PathVariable("id") String id) {
return id;
}
호출
http://localhost:8080/hello/1
위와 같이 호출 하면
response가 1이라고 옵니다.
@RequestBody사용하기
사용자 요청 | URL | 메소드 | Path | RequestBody |
Echo | /api/v1/blog/ | POST | /api/v1/blog/ | json |
@RestController
@RequestMapping(value = "/api/v1/blog")
public class BlogAnalysticController {
@PostMapping(value = "/")
public String echo(@RequestBody Map<String, Object> postData) {
StringBuilder sb = new StringBuilder();
postData.entrySet().forEach(map->{
sb.append(map.getKey() + ":" + map.getValue() + "/n");
});
return sb.toString();
}
}
Body에 넘어온 key, value 값들을 String으로 묶어서 리턴 해주는 Controller입니다.
호출
id와 name 두가지 값을 보낸 것을 그대로 string으로 바꾼 값이 리턴 되었습니다.
Add와 Update만들기
가장 복잡한게 Add와 Update입니다. 왜냐하면 오브젝트를 받기 때문입니다.
@PostMapping(value = "/add")
public void add(@RequestBody Product product) {
}
@PutMapping(value = "/add")
public void update(@PathVariable long id, @RequestBody Product product) {
}
@RequestBody를 쓰면 Json을 파싱 해줍니다.
호출 할 때는 json형태로 파라메터를 넘기면서 호출 해야 합니다.
참고
728x90
'Spring > Spring Boot(스프링 부트)' 카테고리의 다른 글
SpringBoot 일관된 Response 리턴하기 (0) | 2022.11.24 |
---|---|
Saga Pattern에서 Saga의 뜻 (0) | 2022.08.09 |
Certificate Signing Requests(CSR) (0) | 2022.03.27 |
Spring Boot Web의 Tomcat을 Jetty로 대체, Swagger연동 (0) | 2021.11.25 |
스프링 부트 @RequiredArgsConstructor 애노테이션 (1) | 2019.03.13 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Linux
- 도커컨테이너
- docker container tissue
- shellscript
- docker container tissue box
- 도커티슈박스
- vim
- 도커티슈케이스
- 개발자
- 싱가폴
- 2017 티스토리 결산
- Sh
- docker container case
- 도커각티슈박스
- docker container whale
- docker container
- 도커각티슈케이스
- 이직
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함