반응형
SMALL
package com.in28minutes.rest.webservices.restfulwebservices.versioning;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class VersioningPersonController {
@GetMapping("/v1/person")
public PersonV1 getFirstVersionOfPerson() {
return new PersonV1("Bob Charlie");
}
@GetMapping("/v2/person")
public PersonV2 getSecondVersionOfPerson() {
return new PersonV2(new Name("Bob", "Charlie"));
}
@GetMapping(path = "/person", params = "version=1") //person?version=1
public PersonV1 getFirstVersionOfPersonRequestParameter() {
return new PersonV1("Bob Charlie");
}
@GetMapping(path = "/person", params = "version=2") //person?version=2
public PersonV2 getSecondVersionOfPersonRequestParameter() {
return new PersonV2(new Name("Bob", "Charlie"));
}
@GetMapping(path = "/person/header", headers = "X-API-VERSION=1")
public PersonV1 getFirstVersionOfPersonRequestHeader() {
return new PersonV1("Bob Charlie");
}
@GetMapping(path = "/person/header", headers = "X-API-VERSION=2")
public PersonV2 getSecondVersionOfPersonRequestHeader() {
return new PersonV2(new Name("Bob", "Charlie"));
}
@GetMapping(path = "/person/accept", produces = "application/vnd.company.app-v1+json")
public PersonV1 getFirstVersionOfPersonAccHeader() {
return new PersonV1("Bob Charlie");
}
@GetMapping(path = "/person/accept", produces = "application/vnd.company.app-v2+json")
public PersonV2 getSecondVersionOfPersonAccHeader() {
return new PersonV2(new Name("Bob", "Charlie"));
}
@GetMapping(path = "/person/accept", produces = "application/vnd.company.app-v3+json")
public PersonV1 getperson1() {
return new PersonV1("HEllO~");
}
}
반응형
LIST
'Spring > Spring Boot' 카테고리의 다른 글
Actuator로 API 모니터링/HAL explorer로 API 탐색 (0) | 2023.10.06 |
---|---|
Rest API 동적 필터링 (0) | 2023.10.06 |
name, password 구현 (0) | 2023.09.21 |
logging (0) | 2023.09.21 |
@RequestParam (0) | 2023.09.21 |