일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 비전공개발자취업
- SQLD교재추천
- 국비학원 후기
- containsValue
- spring mvc 기초
- 파이썬
- sql developer logon denied
- Jpa기초
- ORA-91917
- it국비학원 후기
- 스택
- oracle error
- 개발자면접질문
- containsKey
- 소수점출력
- 큐
- 비전공 국비학원
- java17
- 비전공개발자
- ClassNotFoundException
- java문법
- 최신java
- kh정보교육원 후기
- 코딩테스트
- 예제
- 국비학원
- 그리디알고리즘
- 비전공 개발자
- ip란
- 국비학원 추천
- Today
- Total
Developer J
Rest api 란? 예제 포함 본문
개발을 시작하면 반드시 구현할 수 있어야 하는 부분이 바로 REST API이다.
REST API의 메소드에는 GET, POST, PUT(PATCH) , DELETE가 있다.
GET 방식은 쉽게 생각하면, 주소창을 통해서 정보를 전달해서 데이터를 읽어오는 방식이다.
아래의 코드는 GET 방식으로 만든 API이다.
package com.example.study.controller;
import com.example.study.model.SearchParam;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api") // "localhost:8080/api"입력을 인식하게 된다
public class GetController {
@RequestMapping(method = RequestMethod.GET, path = "/getMethod") // localhost:8080/api/getMethod
public String getRequest(){
return "Hi getMethod";
}
@GetMapping("/getParameter") //localhost:8080/api/getParameter?id=1234&password=abcd
public String getParameter(@RequestParam String id, @RequestParam String password){
System.out.println("id : "+id);
System.out.println("password : "+password);
return "id : "+id + " password : "+password;
}
}
controller를 직접 만들어 보면서 이해하는 것이 개념을 공부하는 것보다 재밌게 이해가 되는 것 같다.
위의 코드를 직접 입력하고 SpringBoot를 실행한다.
그후 주소창에 아래와 같이 주소를 입력한다.
입력한 주소 localhost:8080/api/getParameter?id=1234&password=abcd 에서 id와 password를 getParameter 메소드가 가져올 수 있도록 설정해주는 부분이 아래의 부분이다.
public String getParameter(@RequestParam String id, @RequestParam String password)
@RequestParam을 설정해 주면 그에 해당하는 값을 받아와 저장한다. id=1234의 경우 String으로 선언한 id에 저장된다.
console에서 값들을 확인하기 위해 "System.out.println("id : "+id);"을 입력했다.
(참고 : intellij의 경우 scout을 치고 ctrl + space를 누르면 System.out.println이 자동완성된다.)
처음 예시보다 많은 파라미터들을 가져오는 방법에대해 알아보자.
첫 예제에는 id, password만 가져왔다. 하지만 한 사람의 정보인 이름, 나이, 성별, 이메일, 휴대폰 번호 등 많은 정보를 가져오는 경우가 있을 수 있다. 그 경우 메소드의 매개변수로 그 많은 변수들을 일일이 수정하기는 힘들 것이다.
이 경우 사용하는 방법은 받아오고자 하는 변수들을 하나의 클래스를 생성해 그 안에 만들어 주는 것이다.
SearchParam이라는 이름의 class파일을 만들어 준다. 간단히 account, email, page만 선언을 해주겠다.
package com.example.study.model;
public class SearchParam {
private String account;
private String email;
private int page;
//{"account" : "", "email" : "", "page": 0}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
}
위의 클래스를 활용해서 여러개의 파라미터를 GET 방식으로 가져오는 메소드를 작성해본다.
// 여러개의 파라미터를 받을 경우
//localhost:8080/api/getMultiParameter?account=abcd&email=study@gmail.com&page=10
@GetMapping("/getMultiParameter")
public SearchParam getMultiParameter(SearchParam searchParam){
System.out.println(searchParam.getAccount());
System.out.println(searchParam.getEmail());
System.out.println(searchParam.getPage());
//{"account" : "", "email" : "", "page": 0}
//객체를 리턴하게 되면!! jackson라이브러리에서 json형태로 변경해준다.
return searchParam;
}
첫 예제와 다르게 이번에는 위에서 선언한 클래스를 매개변수로 받는다. 주소로 받은 값들을 SearchParam클래스에서 각각의 변수에 연결시켜 인식하게 된다. searchParam으로 return을 해주면 jackson라이브러리에서 알아서 json형태로 변경해서 화면에 뿌려준다.
추가적인 내용은 따로 포스팅을 하겠다.
개인적으로 공부한 내용을 정리한 것이기 때문에 잘못된 사항이나 궁금한 사항은 댓글로 남겨주면 답변을 하겠다.
'개발자 되기 part1 > Spring Boot' 카테고리의 다른 글
JPA Entity Repository 설명 (0) | 2021.03.11 |
---|---|
Lombok이란? 설치 방법 (0) | 2021.03.09 |
Spring Boot 기초 환경 설정 (0) | 2020.12.15 |