RESTful

Request Parameter 와 Header를 이용한 API 관리

당근개발자 2022. 1. 16. 19:19

저번 포스팅에서는

uri 자체에 v1,v2등 버전을 직접 넣음으로써 version을 관리했다.

이번에는 Request Parameter를 사용해서 버전을 관리해보자.

-Parameter-

// request param을 사용하기 때문에 @Getmapping value(url)에 마지막에  '/' 를추가해줘야한다.
@GetMapping(value = "/users/{id}/",params = "version=1")
public MappingJacksonValue retrieveUserV1(@PathVariable int id) {
}

@GetMapping(value = "/users/{id}/",params = "version=2")
public MappingJacksonValue retrieveUserV2(@PathVariable int id) {
}

http::localhost:8088/admin/users/1/?version=1

다음과 같이 요청을 보내면 정상적으로 출력이 된다.

 

-Header-

@GetMapping(value = "/users/{id}", headers ="X-API-VERSION=1" )
public MappingJacksonValue retrieveUserV1(@PathVariable int id)
}

@GetMapping(value = "/users/{id}", headers ="X-API-VERSION=2" )
  public MappingJacksonValue retrieveUserV2(@PathVariable int id)
  }

header에 해당하는값을 넣고 요청하면 정상적으로 값이 나오는 것을 확인 할 수있다.

 

 

-produce-

@GetMapping(value = "/users/{id}",produces = "application/vnd.company.appv1+json")
public MappingJacksonValue retrieveUserV1(@PathVariable int id){
}

  @GetMapping(value = "/users/{id}",produces = "application/vnd.company.appv2+json")
    public MappingJacksonValue retrieveUserV2(@PathVariable int id){
    }