Ir ao conteúdo
  • Cadastre-se

Java consumir api com java


Posts recomendados

https://mercado.varejofacil.com/api/v1/docs

Boa noite a todos, como faço para utilizar esse tipo de API ? fazer o ajuste um item por exemplo... (/v1/estoque/ajustes) , recebi essa api para automatizar algumas tarefas no trabalho, mas não faço ideia de como utilizar. Se alguém conseguir me dar um exemplo, agradeço... Lembrando que tenho acesso a usuarios e senhas.

 

Link para o comentário
Compartilhar em outros sites

59 minutos atrás, herbertbahia disse:

O que voce quer dizer com utilizar? seria consumir os endpoints? se sim qual a tecnologia voce irá desenvolver para isto? jsf ? jsp? springbot? thymeleaf? ou outra? O que você ja conseguiu desenvolver até o momento?

Desculpa não ter explicado direito, sou leigo no assunto. Minha intenção é simplesmente fazer um metodo para alterar valores dentro do sistema relacionado a essa api. Quero por exemplo, alterar o preço de um produto no cadastro de produto. Queria exemplo disso... Essa api é de um sistema online que uso aqui na empresa onde trabalho. 

Link para o comentário
Compartilhar em outros sites

Já que estamos falando de web, você pode tentar começar pela parte de entender os métodos https para ficar menos leigo. A internet gira em torno deles. Confira a seguir os principais métodos:

 

GET: o método GET é usado para recuperar dados do servidor. Ele solicita um recurso específico e retorna a representação desse recurso.

POST: o método POST é usado para enviar dados ao servidor para criar ou atualizar um recurso. Ele geralmente é usado para enviar dados de formulário, mas pode ser usado para enviar qualquer tipo de dados.

PUT: o método PUT é usado para atualizar um recurso no servidor. Ele substitui completamente o recurso existente pelo novo recurso enviado no corpo da solicitação.

DELETE: o método DELETE é usado para excluir um recurso do servidor. Ele solicita a exclusão do recurso identificado pela URI.

 

Por isso para fazer o ajuste de um item no endpoint mencionado voce precisa entender que deve utilizar o metodo post e não os métodos gets.

 image.png.2f985a3dc082dd77e690de3423225667.png

Em seguida aconselho tentar entender os dados dele. Você deverá utilizar um objeto que comtemple os atributos conforme na documentação.

image.png.e6dd4c9de772043912a2a0f62815898e.png

Caso não entenda o conceito de objetos ou orientação a objetos recomendo este material https://www.devmedia.com.br/principais-conceitos-da-programacao-orientada-a-objetos/32285

 

Após a criação da classe com seus devidos atributos aconselho você postar aqui o seu código e posso lhe sugeri uma boa tecnologia para você implementar um serviço para ele.

Link para o comentário
Compartilhar em outros sites

@herbertbahia Boa noite, obrigado por responder.

Oritentação a objetos eu até entendo(estudei durante uns anos java e o paradigma de orientação a objetos), esse conceito base do get, post e put entendi tambem. Eu tenho um codigo que fizeram pra mim em pyton, que descreve um pouco da minha dúvida...

nesse exemplo abaixo e feito uma requisão da api estoque/saldos (https//grupofreguesia.varejofacil.com é o dominio que utilizo) que no final grava no disco local um arquivo excel com essa tabela de informações.

 

Eis o começo do arquivo retornado, essa tabela tem o saldo de todos os itens do sistema (tem cerca de 55 mil linhas) ...

image.png.2dc5023c382dc6cc4146aa3d6211ac40.png

 

 

 

E aqui o codigo feito em python...

 

import os
from time import sleep
from turtle import left
import requests
import datetime
import pandas as pd
import sys
import subprocess
import pkg_resources


username = '****'
password = '****'

url = 'https://grupofreguesia.varejofacil.com'
userObj = {
    'username': username,
    'password': password
}

try:
    response = requests.post(url + '/api/auth', json=userObj)
except:
    print('Erro de autenticação!')
else:
    if response.status_code != 200:
        print('Erro de autenticação!')
        tolog('Erro de autenticação! ' + str(response.status_code))
    else:
        token = response.json()
        headers = {'Authorization': token['accessToken']}
        items = []
        try:


            os.system('cls' if os.name == 'nt' else 'clear')
            print('\nAguarde...')

            api = "/api/v1/"+'estoque/saldos'
            size = '500'

#__________________________________pega os primeiros itens___________________________________________________________          
            response = requests.get(url +api+'?start=0&count='+size, headers=headers)
            total = int(response.json()['total'])
            #total = 2000 # gerando somente 1000 para teste
            items = response.json()['items']
            start = 500
#____________________________________________________________________________________________________________________  

#__________________________________percorre todos os itens restantes_________________________________________________
            while len(items) < total:
                try:
                    os.system('cls' if os.name == 'nt' else 'clear')
                    print('\nAguarde...\n' + str(len(items)) + '/' + str(total))#imprime na tela a progressão atual
                    response = requests.get(
                        url +api+'?start=' + str(start) + '&count='+size, headers=headers)
                    items = items + response.json()['items'] 
                    start = start + size


                except:
                    print('Erro ao solicitar '+api)
                    tolog('Erro ao solicitar ! '+api +
                          str(response.status_code) + ' items: ' + str(len(items)))
#____________________________________________________________________________________________________________________
        except:
            print('Erro ao solicitar custos!')
            tolog('Erro ao solicitar custos! 000')

os.system('cls' if os.name == 'nt' else 'clear')
print('\nGerando planilha, aguarde...\nPode demorar alguns minutos.')
custos = pd.DataFrame.from_records(items)
custos.to_excel('C:\PEDIDO\\relat.xlsx')

 

Queria só um exemplo simples dessa requisição get em java ou javascript. E outro e exemplo de post (alterar o saldo um de item, por exemplo), para adptar a algumas taferas que pretendo automatizar.
 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Certamente, aqui estão alguns exemplos de como realizar requisições GET e POST tanto em Java quanto em JavaScript:

Java:

 

GET request:

import java.net.HttpURLConnection;
import java.net.URL;

public class JavaGetRequest {
  public static void main(String[] args) throws Exception {
    URL url = new URL("https://example.com/api/v1/items");
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setRequestMethod("GET");
    int status = con.getResponseCode();
    System.out.println(status); // This will print the HTTP status code of the response.
  }
}

POST request:

import java.net.HttpURLConnection;
import java.net.URL;
import java.io.DataOutputStream;

public class JavaPostRequest {
  public static void main(String[] args) throws Exception {
    URL url = new URL("https://example.com/api/v1/items");
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setRequestMethod("POST");
    con.setRequestProperty("Content-Type", "application/json");
    con.setDoOutput(true);
    String jsonInputString = "{\"item\": \"Item name\", \"quantity\": 10}";
    try (DataOutputStream out = new DataOutputStream(con.getOutputStream())) {
        out.write(jsonInputString.getBytes());
    }
    int status = con.getResponseCode();
    System.out.println(status); // This will print the HTTP status code of the response.
  }
}

JavaScript:

 

GET request:

const https = require('https');

https.get('https://example.com/api/v1/items', (resp) => {
  let data = '';

  resp.on('data', (chunk) => {
    data += chunk;
  });

  resp.on('end', () => {
    console.log(JSON.parse(data)); // This will print the response data as a JSON object.
  });

}).on("error", (err) => {
  console.log("Error: " + err.message);
});

POST request:

const https = require('https');

const options = {
  hostname: 'example.com',
  path: '/api/v1/items',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  }
};

const req = https.request(options, (res) => {
  console.log(`statusCode: ${res.statusCode}`);

  res.on('data', (d) => {
    process.stdout.write(d);
  });
});

req.on('error', (error) => {
  console.error(error);
});

const data = JSON.stringify({
  item: 'Item name',
  quantity: 10
});

req.write(data);
req.end();

espero que ajude 😉

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!