1
resposta

[Projeto] desafio github

usuario

 String nomeDeUsuario;
    String apelido;
    int id;
    int seguidores;
    int seguindo;
    String usuarioTwitter;
    int repositoriosPublicos;
    String localizacao;
    String email;
    
    public Usuario(UsuariosRecord u){
        this.nomeDeUsuario=u.login();
        this.apelido= u.name();
        this.id=Integer.valueOf(u.id());
        this.seguidores=Integer.valueOf(u.followers());
        this.seguindo=Integer.valueOf(u.following());
        this.usuarioTwitter=u.twitter_username();
        this.repositoriosPublicos=Integer.valueOf(u.public_repos());
        this.localizacao=u.location();
        this.email=u.email();
    }


    @Override
    public String toString() {
        return "Usuario: "+nomeDeUsuario+
                "\nApelido: "+apelido+
                "\nID: "+id+"\nRepositórios públicos: "+repositoriosPublicos+
                "\nSeguidores: "+seguidores +" Seguidores: "+seguidores+
                "\nUsuário do twitter: "+usuarioTwitter
                +"\nEmail: "+email+"\nLocalização: "+localizacao;
    }

Record

public record UsuariosRecord(String login, String id, String name, String followers,
                             String following , String twitter_username,
                             String public_repos, String location,String email) {}

Connecta

  private String endereco;
    private String usuario;

    public Conecta(String endereco, String usuario) throws IOException, InterruptedException {
        this.endereco = endereco;
        this.usuario = usuario;
        try {
            HttpClient cliente = HttpClient.newHttpClient();
            HttpRequest requisicao = HttpRequest.newBuilder().uri(
                    URI.create(endereco)).build();
            HttpResponse<String> resposta = cliente.send(
                    requisicao, HttpResponse.BodyHandlers.ofString());
            Gson gson = new Gson();
            String json = resposta.body();
            if (resposta.statusCode() == 200) {
                UsuariosRecord usuariosRecord = gson.fromJson(json, UsuariosRecord.class);
                Usuario usuario1 = new Usuario(usuariosRecord);
                System.out.println(usuario1);
            } else {
                throw new ErroConsultaGitHubException("usuario não encontrado");
            }
        }
           catch (NumberFormatException e){
            System.out.println("erro: "+e);
        }catch (ErroConsultaGitHubException e){
            System.out.println("erro: "+e.getMensagem());
        }
    }

Main

Scanner scanner=new Scanner(System.in);
        System.out.println("digite o nome de usuario: ");
        String usuario= scanner.nextLine();
        String endereco="https://api.github.com/users/"+
                usuario.replace(" ","-");
        Conecta conecta=new Conecta(endereco,usuario);
1 resposta

Oi, Jordan! Como vai?

Agradeço por compartilhar seu código.

Gostei da forma como você estruturou a classe Usuario, especialmente ao sobrescrever o método toString, que ajuda bastante na hora de exibir as informações do perfil. Isso torna a saída mais clara e facilita entender o retorno da API.

Continue firme nos estudos.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!