Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Post para API externa

Olá, não estou conseguindo fazer um post para uma API externa. Estou utilizando o RestTemplate do Spring.

Nesta API, enviando um id e uma key via post, ela devolveria um token.

O que estou fazendo:

Service

    public TokenApiResponse getAutenticacao(String url, String id, String key) {

        TokenApiRequest tokenApiRequest = new TokenApiRequest(id,key);

        ResponseEntity<TokenApiResponse> response = restTemplate.postForEntity(url, tokenApiRequest, TokenApiResponse.class);

        TokenApiResponse token = response.getBody();

        return token;
    }

O erro é java.lang.NullPointerException: null ... O que não ajuda muito.

TokenApiRequest

package br.com.combinacaotaxonomias.model;

public class TokenApiRequest {
    private String apiTokenId;
    private String apiKey;

    public TokenApiRequest() {

    }

    public TokenApiRequest(String apiTokenId, String apiKey) {
        this.apiTokenId = apiTokenId;
        this.apiKey = apiKey;
    }    
    public String getApiTokenId() {
        return apiTokenId;
    }
    public void setApiTokenId(String apiTokenId) {
        this.apiTokenId = apiTokenId;
    }
    public String getApiKey() {
        return apiKey;
    }
    public void setApiKey(String apiKey) {
        this.apiKey = apiKey;
    }
}

TokenApiResponse

package br.com.combinacaotaxonomias.model;

public class TokenApiResponse {
    private String token_type;
    private String access_token;
    private String expires_in;

    public TokenApiResponse(String token_type, String access_token, String expires_in){
        this.token_type = token_type;
        this.access_token = access_token;
        this.expires_in = expires_in;
    }

    public String getToken_type() {
        return token_type;
    }
    public void setToken_type(String token_type) {
        this.token_type = token_type;
    }
    public String getAccess_token() {
        return access_token;
    }
    public void setAccess_token(String access_token) {
        this.access_token = access_token;
    }
    public String getExpires_in() {
        return expires_in;
    }
    public void setExpires_in(String expires_in) {
        this.expires_in = expires_in;
    }

}
2 respostas
solução!

Oi Gustavo,

Como você falou que aconteceu um NullPointerException, suspeito que seja a sua variável restTemplate que esteja nula.

Como você está fazendo para criar o restTemplate no seu service?

É verdade!!!

Esqueci que não era injetado nada referente a esta classe....

Bastou iniciar a variável que tudo deu certo:

    private RestTemplate restTemplate = new RestTemplate();

Muito obrigado!