반응형
GraphQL 플레이 그라운드는 GraphiQL, Altair 등이 있다.
GraphiQL UI가 마음에 안들기도 하고, 기존에 Altair를 사용하고 있었어서 GraphQL 서버를 개발하면서 Altair 붙이는 것 부터 작업을 시작했는데, 여기서 부터 막혀버렸다.
build.gradle.kts
implementation("com.graphql-java-kickstart:altair-spring-boot-starter:11.1.0")
application.yml
graphql:
altair:
enabled: true
mapping: /altair
options:
endpoint-url: /graphql
위와 같이 설정을 해도 아래와 같이 404 No static resource altair.
오류가 발생했다
Dependency는 잘 걸린 것 같은데 아래의 Altair static 파일들을 가져오지 못해서 발생하는 문제 같았다.
한참을 삽질하다가 구글링으로 두가지 해결 방법을 찾았다.
property 설정으로 해결
static 리소스는 CDN으로 전달되어서 application.yaml 에 cdn 설정을 추가하면 된다.
graphql:
altair:
enabled: true
mapping: /altair
cdn:
enabled: true
version: 4.0.2
options:
endpoint-url: /graphql
Configuration
직접 static 리소스 파일의 위치를 WebMvcConfigurationSupport
에 추가한다.
@Configuration
class GraphQlConfig : WebMvcConfigurationSupport() {
override fun addResourceHandlers(registry: ResourceHandlerRegistry) {
registry.addResourceHandler("/vendor/**")
.addResourceLocations("classpath:/static/vendor/")
}
}
altair-spring-boot-starter에서 CDN 설정을 제공해주니 property 설정으로 해결하는게 좋다고 판단하고 해당 방법으로 문제를 해결했다.
참고
반응형