Boa tarde, estou criando uma aplicação Spring boot, trata-se de um microserviço que ao receber uma request POST para cadastrar um cliente, internamente chama outra URL para repassar esse post, porém com problema na composição, não esta encontrando no bean.
Seguem as configurações:
Controller:
package com.luvida.store.controller
import com.luvida.store.DTO.ApiRequest
import com.luvida.store.DTO.ApiResponse
import com.luvida.store.model.entity.ExternoResponse
import com.luvida.store.service.StoreService
import org.springframework.http.MediaType
import org.springframework.stereotype.Controller
//import io.swagger.annotation.Api
import org.springframework.web.bind.annotation.*
@RestController
@RequestMapping ("/loja-luvida", produces = [MediaType.APPLICATION_JSON_VALUE])
//@Api ("api responsavel por fazer o bla bla")
class StoreController(val storeService: StoreService) {
@PostMapping("/cadastro")
@ResponseBody
fun validadeFraud(@RequestBody apiRequest: ApiRequest): ExternoResponse {
return storeService.sendCadastroCliente(apiRequest)
}
}
Service:
package com.luvida.store.service
import com.luvida.store.DTO.ApiRequest
import com.luvida.store.DTO.ApiResponse
import com.luvida.store.model.entity.ExternoResponse
interface StoreService {
fun sendCadastroCliente(apiRequest: ApiRequest): ExternoResponse
}
Implementação da service (onde estou recebendo o erro de Bean)
package com.luvida.store.service.impl
import com.luvida.store.DTO.ApiRequest
import com.luvida.store.integration.StoreApi
import com.luvida.store.model.entity.ExternoResponse
import com.luvida.store.service.StoreService
import org.springframework.stereotype.Service
@Service
class StoreServiceImpl(
private val lojaApi: StoreApi
) : StoreService {
override fun sendCadastroCliente(apiRequest: ApiRequest): ExternoResponse {
return sendAnalysisFraud(apiRequest)
}
}
Aqui é a interface para fazer a conexão com a API externa:
package com.luvida.store.integration
import com.luvida.store.DTO.ApiRequest
import com.luvida.store.DTO.ApiResponse
import org.springframework.cloud.openfeign.FeignClient
import org.springframework.http.MediaType
import org.springframework.web.bind.annotation.*
@FeignClient("CadastroCliente", url = "https://reqres.in/api")
interface StoreApi {
@PostMapping("/user", consumes = [MediaType.APPLICATION_JSON_VALUE])
@ResponseBody
fun sendCadastroCliente(@RequestBody apiRequest: ApiRequest): ApiResponse
}
A mensagem de erro que recebo é:
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of constructor in com.luvida.store.service.impl.StoreServiceImpl required a bean of type 'com.luvida.store.integration.StoreApi' that could not be found.
Action:
Consider defining a bean of type 'com.luvida.store.integration.StoreApi' in your configuration.