gn-api-sdk-java icon indicating copy to clipboard operation
gn-api-sdk-java copied to clipboard

Falha ao chamar api via SDK

Open yanBrandao opened this issue 2 years ago • 2 comments

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?

yanBrandao avatar Feb 19 '23 02:02 yanBrandao

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 avatar Mar 08 '23 14:03 jessica-gava-efi

@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!

yanBrandao avatar Mar 09 '23 03:03 yanBrandao