Skip to content

Commit 5fa1072

Browse files
committed
✨ Feat : FastAPI 서버 테스트용 API 추가
1 parent 460cb75 commit 5fa1072

7 files changed

Lines changed: 85 additions & 8 deletions

File tree

build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ dependencies {
3232
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
3333
//swagger
3434
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0'
35+
//webflux
36+
implementation 'org.springframework.boot:spring-boot-starter-webflux'
3537
}
3638

3739
tasks.named('test') {

src/main/java/com/going/global/config/WebConfig.java

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/main/java/com/going/global/config/SwaggerConfig.java renamed to src/main/java/com/going/server/global/config/SwaggerConfig.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.going.global.config;
1+
package com.going.server.global.config;
22

33
import io.swagger.v3.oas.models.OpenAPI;
44
import io.swagger.v3.oas.models.info.Info;
@@ -12,11 +12,10 @@ public class SwaggerConfig {
1212
public OpenAPI OpenAPI() {
1313
Info info = new Info()
1414
.title("Test SpringBoot API")
15-
.description("<h3>TEST API 명세서</h3>")
15+
.description("<h3>CapGoing API 명세서</h3>")
1616
.version("1.0.0");
1717

1818
return new OpenAPI()
19-
.addServersItem(new Server().url("/"))
2019
.info(info);
2120
}
2221
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.going.server.global.config;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
import org.springframework.context.annotation.Primary;
6+
import org.springframework.web.reactive.function.client.WebClient;
7+
8+
@Configuration
9+
public class WebClientConfig {
10+
@Bean
11+
@Primary
12+
public WebClient.Builder webClientBuilder() {
13+
return WebClient.builder();
14+
}
15+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.going.server.global.temp.controller;
2+
3+
import com.going.server.global.temp.service.FastApiService;
4+
import io.swagger.v3.oas.annotations.Operation;
5+
import io.swagger.v3.oas.annotations.media.Content;
6+
import io.swagger.v3.oas.annotations.media.Schema;
7+
import io.swagger.v3.oas.annotations.responses.ApiResponse;
8+
import io.swagger.v3.oas.annotations.responses.ApiResponses;
9+
import io.swagger.v3.oas.annotations.tags.Tag;
10+
import lombok.RequiredArgsConstructor;
11+
import org.springframework.http.ResponseEntity;
12+
import org.springframework.web.bind.annotation.GetMapping;
13+
import org.springframework.web.bind.annotation.RequestMapping;
14+
import org.springframework.web.bind.annotation.RestController;
15+
16+
@RestController
17+
@RequiredArgsConstructor
18+
@RequestMapping("/api")
19+
@Tag(name = "FastAPI 통신 테스트", description = "FastAPI 서버와의 통신을 테스트하는 API")
20+
public class FastApiController {
21+
private final FastApiService fastApiService;
22+
@GetMapping("/test-fastapi")
23+
@Operation(
24+
summary = "FastAPI 서버 테스트",
25+
description = "FastAPI 서버에 GET 요청을 보내고 정상적인 응답이 오는지 확인합니다."
26+
)
27+
@ApiResponses({
28+
@ApiResponse(
29+
responseCode = "200",
30+
description = "FastAPI 서버가 정상적으로 응답을 반환",
31+
content = @Content(
32+
mediaType = "application/json",
33+
schema = @Schema(example = "{\"message\":\"FastAPI is running!\"}")
34+
)
35+
)
36+
})
37+
public ResponseEntity<String> testFastApi() {
38+
String response = fastApiService.callFastApi();
39+
return ResponseEntity.ok(response);
40+
}
41+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.going.server.global.temp.service;
2+
3+
import lombok.extern.slf4j.Slf4j;
4+
import org.springframework.beans.factory.annotation.Value;
5+
import org.springframework.stereotype.Service;
6+
import org.springframework.web.reactive.function.client.WebClient;
7+
8+
@Service
9+
@Slf4j
10+
public class FastApiService {
11+
@Value("${fastapi.base-url}")
12+
private String baseUrl;
13+
private final WebClient webClient;
14+
public FastApiService(WebClient.Builder webClientBuilder) {
15+
this.webClient = webClientBuilder.baseUrl(baseUrl).build();
16+
}
17+
public String callFastApi() {
18+
return webClient.get()
19+
.uri(baseUrl+"/")
20+
.retrieve()
21+
.bodyToMono(String.class)
22+
.block();
23+
}
24+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
fastapi.base-url=${FASTAPI_BASE_URL}

0 commit comments

Comments
 (0)