Skip to content

Commit 3db9452

Browse files
committed
[BE] chore(#53): Swagger 설정
* Swagger Info, Servers, SecurityScheme 설정
1 parent 27788c1 commit 3db9452

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.example.backend.auth.config.swagger;
2+
3+
import io.swagger.v3.oas.models.Components;
4+
import io.swagger.v3.oas.models.OpenAPI;
5+
import io.swagger.v3.oas.models.info.Contact;
6+
import io.swagger.v3.oas.models.info.Info;
7+
import io.swagger.v3.oas.models.info.License;
8+
import io.swagger.v3.oas.models.security.SecurityRequirement;
9+
import io.swagger.v3.oas.models.security.SecurityScheme;
10+
import io.swagger.v3.oas.models.servers.Server;
11+
import org.springframework.beans.factory.annotation.Value;
12+
import org.springframework.context.annotation.Bean;
13+
import org.springframework.context.annotation.Configuration;
14+
15+
import java.util.Arrays;
16+
import java.util.List;
17+
import java.util.stream.Collectors;
18+
19+
@Configuration
20+
public class SwaggerConfig {
21+
22+
@Bean
23+
public OpenAPI openAPI(@Value("${gitudyCoreUrls}") String[] serverList) {
24+
Info info = new Info()
25+
.title("Gitudy Server")
26+
.version("0.1")
27+
.description("깃터디 서버 API 문서입니다.")
28+
.contact(new Contact()
29+
.name("📍 깃터디 GitHub Link")
30+
.url("https://github.com/DKU-Dgaja/gitudy"))
31+
.license(new License()
32+
.name("⚖️ Apache License Version 2.0")
33+
.url("http://www.apache.org/licenses/LICENSE-2.0"));
34+
35+
List<Server> servers = Arrays.stream(serverList)
36+
.map((url) -> new Server().url(url))
37+
.collect(Collectors.toList());
38+
39+
SecurityScheme securityScheme = new SecurityScheme()
40+
.name("Bearer Authentication")
41+
.type(SecurityScheme.Type.HTTP)
42+
.bearerFormat("JWT")
43+
.scheme("Bearer");
44+
SecurityRequirement schemaRequirement = new SecurityRequirement().addList("bearerAuth");
45+
46+
return new OpenAPI()
47+
.components(new Components().addSecuritySchemes("bearerAuth", securityScheme))
48+
.security(Arrays.asList(schemaRequirement))
49+
.info(info)
50+
.servers(servers);
51+
}
52+
}

0 commit comments

Comments
 (0)