API
apigateway-service : application.yml
server:
port: 8000
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: <http://localhost:8761/eureka>
spring:
application:
name: apigateway-service
cloud:
gateway:
default-filters:
- name: GlobalFilter
args:
baseMessage: Spring Cloud Gateway Global Filter
preLogger: true
postLogger: true
routes:
# 추가
- id: user-service
uri: lb://USER-SERVICE
predicates:
- Path=/user-service/**
- id: first-service
uri: lb://MY-FIRST-SERVICE
predicates: # 조건절
- Path=/first-service/**
filters:
- CustomFilter
# - AddRequestHeader=first-request, first-request-header2
# - AddResponseHeader=first-response, first-response-header2
- id: second-service
uri: lb://MY-SECOND-SERVICE
predicates:
- Path=/second-service/**
filters:
- CustomFilter # 추가적인 파라미터가 없으면 name 생략
- name: LoggingFilter # 추가적인 파라미터가 있으면 name 생략 X
args:
baseMessage: Hi, there
preLogger: true
postLogger: true
# - AddRequestHeader=second-request, second-request-header2
# - AddResponseHeader=second-response, second-response-header2
user-service : UserController
@RestController
@RequestMapping("/user-service/") // 수정
@RequiredArgsConstructor
public class UserController {
private final Environment env;
private final Greeting greeting;
private final UserService userService;
// 수정
@GetMapping("/health_check")
public String status() {
return String.format("It's Working in User Service on PORT %s",
env.getProperty("local.server.port"));
}
@GetMapping("/welcome")
public String welcome() {
// return env.getProperty("greeting.message");
return greeting.getMessage();
}
@PostMapping("/users")
public ResponseEntity<ResponseUser> createUser(@RequestBody RequestUser user) {
ModelMapper mapper = new ModelMapper();
mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
UserDto userDto = mapper.map(user, UserDto.class);
userService.createUser(userDto);
ResponseUser responseUser = mapper.map(userDto, ResponseUser.class);
return ResponseEntity.status(HttpStatus.CREATED).body(responseUser);
}
}
http://localhost:8000/user-service/health_check
를 호출