Free Lines Arrow
본문 바로가기
Spring/spring mvc 1 스터디

[Spring] 요청매핑

by skahn1215 2021. 11. 10.
728x90
반응형

요청매핑

url 로 요청이 왔을때 어떻게 처리하는지 방법을 알아본다.

 

 

 

매핑방법1

여러개의 요청 url 을 받는방법

    @RequestMapping(value = {"/hello-basic", "/hello-go"}, method = RequestMethod.GET)
    public String helloBasic() {
        log.info("helloBasic");
        return "ok";
    }

 

GetMapping 을 이용하여 Path 변수값 가져오기

    @GetMapping(value = "/mapping/{userId}")
   // public String mappingPath(@PathVariable("userId") String data) {
    // 변수명과 PathVariable 이름이 같으면 변수만 써줘도 된다.
    public String mappingPath(@PathVariable String userId) {
        log.info("mappingPath userId ={}", userId);
        return "ok";
    }

 

특정  파라미터 값이 있을만 매핑하기

    /**
     * 파라미터로 추가 매핑
     * 해당 파라미터 쿼리가 있어야 동작한다.
     * mode=debug 이게 파라미터로 있어야한다.
     */
    @GetMapping(value = "/mapping-param", params = "mode=debug")
    public String mappingParam() {
        log.info("mappingParam");
        return "ok";
    }

 

 

컨트롤러가 생성하는 타입만 받기

    /**
     * Content-Type 헤더 기반 추가 매핑 Media Type
     * 헤더의 content-type이 json 이면 응답한다.
     * consumes: 소비하는 입장에서 보면 요청의 content 타입을 처리
     * produces: 컨트롤러가 생성하는 타입을 말한다.
     */
    @PostMapping(value = "/mapping-consume", consumes = "application/json")
    public String mappingConsumes() {
        log.info("mappingConsumes");
        return "ok";
    }

 

클라이언트가 받는 타입을 정한다.

    /**
     * Accept 헤더 기반 Media Type
     * produces: 클라이언트 쪽이 받아 들이는 타입을 정의해준다.
     */
    @PostMapping(value = "/mapping-produce", produces = "text/html")
    public String mappingProduces() {
        log.info("mappingProduces");
        return "ok";
    }

 

 

 

매핑방법2 

@RestController 사용하여 중복을 생략한다.

package hello.springmvc.basic.requestmapping;

import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/users")
public class MappingClassController {

    //@GetMapping("/users")
    @GetMapping
    public String user() {
        return "get users";
    }

    //@PostMapping("/users")
    @PostMapping
    public String addUser() {
        return "post user";
    }

    //@GetMapping("/users/{userId}")
    @GetMapping("/{userId}")
    public String findUser(@PathVariable String userId) {
        return "get userId=" + userId;
    }

    //@PatchMapping("/users/{userId}")
    @PatchMapping("/{userId}")
    public String updateUser(@PathVariable String userId) {
        return "update userId=" + userId;
    }

    //@DeleteMapping("/users/{userId}")
    @DeleteMapping("/{userId}")
    public String deleteUser(@PathVariable String userId) {
        return "delete userId=" + userId;
    }

}

 

 

 

 

참고

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/lecture/71216?tab=curriculum 

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

728x90
반응형

'Spring > spring mvc 1 스터디' 카테고리의 다른 글

[Spring] Message Converter  (0) 2021.11.25
[Spring] HTTP 응답  (0) 2021.11.21
[Spring] HTTP 요청메세지 TEXT, JSON  (0) 2021.11.16
[Spring] HTTP 요청파라미터  (0) 2021.11.13
[Spring] Spring Controller 다루기  (0) 2021.11.06

댓글