Java 라이브러리를 통해 제 3 자 REST API와 상호 작용할 grails 서비스를 만들고 있습니다. Java 라이브러리는 url, username 및 password를 사용하여 REST API에 대한 신임장을 필요로합니다.Grails 애플리케이션 구성을 서비스에 삽입하십시오.
이러한 자격 증명을 configuration/Config.groovy
에 저장하고 서비스에 사용할 수 있도록하고 자격 증명을 요구하기 전에 서비스에서 사용할 수 있도록하십시오.
난 grailsApplication.config
가 컨트롤러에게 제공하고 있음을 알 그 관련 설정 값들은 서비스에 제공 될 수있는 서비스 방법을 통해, 이와 같은 :
package example
class ExampleController {
def exampleService
def index = { }
def process = {
exampleService.setCredentials(grailsApplication.config.apiCredentials)
exampleService.relevantMethod()
}
}
package example
import com.example.ExampleApiClient;
class ExampleService {
def credentials
def setCredentials(credentials) {
this.credentials = credentials
}
def relevantMethod() {
def client = new ExampleApiClient(
credentials.baseUrl,
credentials.username,
credentials.password
)
return client.action();
}
}
이 접근 방식은 setCredentials()
컨트롤러 호출에 따라 약간의 결함이 있다고 생각합니다. 서비스에 자동으로 자격 증명을 사용하게하면 더욱 강력 해집니다.
이 두 가지 옵션 중 하나는 (내가 Grails는 충분히 현재 익숙하지 않은) 실행 가능 :
는 컨트롤러에서 서비스에 주입한다
을 만들 때?grailsApplication.config.apiCredentials
이 서비스는자격 증명을 인스턴스화 할 때 서비스에 전달할 수 있도록 서비스에 컨스트럭터를 제공하십시오.
자격 증명을 서비스에 삽입하는 것이 이상적입니다. 어떻게이 일을 할 수 있겠습니까?
전체 GrailsApplication 객체 대신 실제 설정 속성을 삽입하는 방법이 있다면 여전히 유용 할 것입니다. –