Falha ao chamar api via SDK
Ao realizar a chamada abaixo:
gn.call("createCharge", hashMapOf(), body)
Estou recebendo o erro abaixo:
org.json.JSONException: JSONObject["APIs"] not found.
at org.json.JSONObject.get(JSONObject.java:471) ~[json-20160810.jar:na]
at br.com.gerencianet.gnsdk.Config.getEndpoints(Config.java:26) ~[gn-api-sdk-java-2.0.0.jar:na]
at br.com.gerencianet.gnsdk.Endpoints.kernelCall(Endpoints.java:112) ~[gn-api-sdk-java-2.0.0.jar:na]
at br.com.gerencianet.gnsdk.Endpoints.call(Endpoints.java:84) ~[gn-api-sdk-java-2.0.0.jar:na]
Analisando o código do SDK, e no construtor da classe Endpoints apresentado abaixo:
public Endpoints(JSONObject options) throws Exception {
JSONObject config = this.readJSONFile();
this.config = new Config(options, config);
}
Ele recebe as configurações passadas na entrada através do atributo options, como credenciais e outras informações adicionais, porém esse outro objeto config é feito a leitura de arquivo config.json que no repositório de exemplo não explica se devemos criar esse arquivo ou como devemos preenche-lo, mas nesse arquivo deveria ter um campo achamado APIs que dispara o erro.
public JSONObject getEndpoints() {
return (JSONObject)this.endpoints.get("APIs");
}
Isso é um bug, ou deveriamos criar esse arquivo config.json?
Ola!
O arquivo config.json ja existe - https://github.com/gerencianet/gn-api-sdk-java/blob/master/src/main/resources/config.json.
No repositório de exemplo, é adicionado uma dependência desse projeto(gn-api-sdk-java) que contém o arquivo config.json. Verifique se no pom.xml de seu repositorio de exmeplo, você esta utilizando a versão correta, pois tivemos algumas alterações, inclusive na estrutura desse arquivo config.json.
A versão mais atual é 2.0.0
<dependency>
<groupId>br.com.gerencianet.gnsdk</groupId>
<artifactId>gn-api-sdk-java</artifactId>
<version>2.0.0</version>
</dependency>
@jessica-gava-efi aparentemente deve ter sido alguma confusão minha no momento da criação do arquivo de configuração.
Conforme o exemplo, devemos nomear os arquivos de configurações como credentials.json, porém eu nomeei como config.json e sobrescreveu o que estava disponível pela SDK de vocês e com isso não estava encontrando o objeto API.
Não sei bem se é um bug, mas esse arquivo é bem crítico para fluxo. Mesmo assim, obrigado pela resposta!