1. GetMethod를 지정하는 방법
package com.example.newprojects.controller;
import com.example.newprojects.controller.dto.UserRequest;
import org.springframework.web.bind.annotation.*;
import java.sql.SQLOutput;
import java.util.Map;
@RestController
@RequestMapping("/api/get")
public class GetApiController {
@GetMapping(path="/hello") //http://localhost:8080/api/get/hello 로 지정
public String hello(){
return "get Hello";
}
@RequestMapping("/hi") //예전 방식 // get / post/ put / delete 모두 지정 할 수 있기 때문에
//한가지만 지정 하고 싶다면 @RequestMappin(path="/hi",method = RequestMethod.GET) 로 작성했다.
public String hi(){
return "get hi";
}
2. 변수를 받는 방법
package com.example.newprojects.controller;
import com.example.newprojects.controller.dto.UserRequest;
import org.springframework.web.bind.annotation.*;
import java.sql.SQLOutput;
import java.util.Map;
@RestController
@RequestMapping("/api/get")
public class GetApiController {
//http://localgost:8080/api/get/apth-variable/{name} / {}안의 값은 변하는 값
@GetMapping("/path-variable/{name}")
public String pathVariable(@PathVariable String name) {
// Annotation안의 변수이름(name)은 GetMapping의 변수이름과 동일해야 한다.
return name;
//변수의 이름을 바꾸고 싶다면 (@PathVariable String(name="name") pathName) 로 변경할 수 있다.
}
3. QueryParameter를 받는 방법 (1)
package com.example.newprojects.controller;
import com.example.newprojects.controller.dto.UserRequest;
import org.springframework.web.bind.annotation.*;
import java.sql.SQLOutput;
import java.util.Map;
@RestController
@RequestMapping("/api/get")
public class GetApiController {
//쿼리파라미터
// 검색시 사용되는 파라미터
//구글 검색시
// search?q = intellij
// &oq = intellij
// &aqs = chrome..69i57j35i39j69i59l2j0i131i433i512j0i512l5.1270j0j15
// &sourceid = chrome
// &ie = UTF-8
// ?key=value&key2=value2
//http://localhost:8080/api/get/query-param?user=steve&email=steve@gmail.com&age=30
@GetMapping(path="query-param")
public String queryParam(@RequestParam Map<String ,String> queryParam){
StringBuilder sb = new StringBuilder();
queryParam.entrySet().forEach(entry ->{
System.out.println(entry.getKey());
System.out.println(entry.getValue());
System.out.println("\n");
sb.append(entry.getKey()+"="+entry.getValue()+"\n");
});
return sb.toString();
}
4. QueryParameter를 받는 방법 (2)
package com.example.newprojects.controller;
import com.example.newprojects.controller.dto.UserRequest;
import org.springframework.web.bind.annotation.*;
import java.sql.SQLOutput;
import java.util.Map;
@RestController
@RequestMapping("/api/get")
public class GetApiController {
@GetMapping("query-param02")
public String queryParam02(
@RequestParam String name,
@RequestParam String email,
@RequestParam int age // 받는 인수가 지정된 형식이 아닐경우 400번대 에러 발생
){
System.out.println(name);
System.out.println(email);
System.out.println(age);
return name+ " " + email + " " + age;
}
5. QueryParameter를 받는 방법 (3)
package를 생성하여 값을 받을 수 있는 객체를 만들어 준다.
가장 많이 사용되는 방법 단, 정의되지 않은 형식의 데이터는 파싱이 되지 않고 소멸 된다.
package com.example.newprojects.controller.dto;
import java.security.PrivateKey;
import java.util.PrimitiveIterator;
public class UserRequest {
private String name;
private String email;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "UserRequest{" +
"name='" + name + '\'' +
", email='" + email + '\'' +
", age=" + age +
'}';
}
}
package com.example.newprojects.controller;
import com.example.newprojects.controller.dto.UserRequest;
import org.springframework.web.bind.annotation.*;
import java.sql.SQLOutput;
import java.util.Map;
@RestController
@RequestMapping("/api/get")
public class GetApiController {
//가장 많이 사용하는 방법 객체를 만들어서 받는 방법
//?user=steve&email=steve@gmail.com&age=30 객체가 들어오면 스프링 부트에서 판단하여 변수와 이름을 매칭 한다.
@GetMapping("query-param03") // @RequestParam 사용 하지 않음
public String queryParam03(UserRequest userRequest){
System.out.println(userRequest.getName());
System.out.println(userRequest.getEmail());
System.out.println(userRequest.getAge());
return userRequest.toString();
}
}| PUT API (0) | 2022.08.17 |
|---|---|
| POST API (0) | 2022.08.16 |
| SpringBoot를 사용하여 "hello spring boot" 출력하기 (0) | 2022.08.16 |
| 스프링 부트 란? (0) | 2022.08.04 |
| HTTP Protocol (0) | 2022.08.04 |