API ou exportação de dados

Não seria possível a disponibilização de uma API para consultar o site? Ou de repente que pudesse exportar por exemplo a nossa lista de desejos para um arquivo .csv?

A propósito parabéns pelo trabalho!

3 curtidas

Olá Josepe, bem vindo ao fórum.

Existe uma API consumida pelo próprio front-end do Compara Jogos, não a divulgo porque ela pode mudar a qualquer momento e porque um abuso poderia afetar negativamente o próprio site, então o ideal é quem tiver interesse entrar em contato mesmo. Basicamente todo acesso já existente na plataforma já passa por uma API aberta.

A URL é https://api.comparajogos.com.br/v1/graphql.

Quem tiver interesse em integrar com nossa plataforma basta responder aqui ou por mensagem privada para elucidar quaisquer dúvidas.

Um exemplo de query GraphQL (retorna os nomes dos jogos na sua lista de desejos; trocar para “OWN” para a coleção):

{
  product(where: {list_items_mine: {list: {_eq: "WISH"}}}) {
    name
  }
}

Pode ser usado qualquer client GraphQL ou pode ser feita uma requisição POST na URL citada com um corpo em JSON:

{ "query": "a query GraphQL" }

Como sua lista de desejos é atualmente uma informação privada (futuramente poderá ser pública) é necessário passar o cabeçalho de Authorization, você precisa do token do seu acesso que pode ser obtido na aba Network do DevTools do Chrome olhando alguma requisição GraphQL ou cookie do site. O fluxo de autorização OAuth também é possível programaticamente, claro.

Além dessa forma posso também avaliar a possibilidade de exportar qualquer uma das listas (desejo, coleção, alertas, etc) em algum formato específico, mas isso precisa ser melhor definido. Talvez o uso seja tão específico que a API já resolva de forma mais eficiente.

Obrigado pelo contato e pelo elogio :wink:

3 curtidas

Que fantástico!

Teria uma lista dos endpoints (querys) que podem ser chamados publicamente?

Eu gostaria de conseguir precificar o valor da minha coleção e ter um histórico de variação de preço dela e também identificar qual jogo variou mais de preço nos últimos tempos.

1 curtida

Olá,

Preciso providenciar a documentação completa do schema GraphQL para que os usuários consigam gerar as queries sozinhos, mas mesmo assim algumas coisas podem não ser possíveis sem alguns ajustes específicos no próprio schema, depende muito do que se quer.

Essa documentação completa exige um esforço considerável para ser validada e apresentada para todos como algo consumível e, embora esteja nos planos, não é uma prioridade.

Abaixo dou um exemplo para obter a soma do menor preço de todos os itens da sua coleção e a quantidade de itens que foram somados (pois a maioria está indisponível e, portanto, não somou valor):

Query GraphQL e Resposta dos servidor

Query GraphQL:

 {
    product_price_aggregate(
      where: {
        min_price: { _is_null: false }
        product: {
          list_items: {
            user: { username: { _eq: "FranciscoFilho" } }
            list: { _eq: "OWN" }
          }
        }
      }
    ) {
      aggregate {
        sum {
          min_price
        }
        count
      }
    }
  }

Resultado:

{
  "data": {
    "product_price_aggregate": {
      "aggregate": {
        "sum": {
          "min_price": 10308.61
        },
        "count": 36
      }
    }
  }
}

Em relação ao outro tópico adianto que para termos uma visão mais interessante dessa informação, precisamos pensar em como tratar estes itens que não tem disponibilidade e, portanto, não tem preço atual para servir de parâmetro. Quando eu estiver mais próximo de pegar essa tarefa vejo esses detalhes melhor e comento lá no outro tópico para chegarmos numa solução bacana.

Quanto a ter essa informação com histórico e variação direto da API preciso avaliar melhor o schema atual, como falei acima, é provável que não seja possível extrair essa visão sem criar uma nova consulta no servidor.

1 curtida

Desde já agradeço a resposta. É fantástico seu trabalho!

Quando não estiver preço atual, poderia pegar o ultimo preço listado antes de ficar indisponível (tanto o maior quanto o menor). Acho interessante saber essa variação, tanto para a lista inteira como para cada jogo, principalmente para precificar.

No mais fico no aguardo de mais novidades. Vlw!

Boa tarde Renato, também tenho muito interesse na API de integração, para trabalhar mais na plataforma mobile, se existir um swagger ou documentação para tal, gostaria de ter acesso e para podermos conversar sobre possíveis melhorias patrocinadas

Obrigado

Olá Michel, tudo bem?

Estou vendo uma forma de documentar melhor nossa API, é em GraphQL mas encontrei um gerador que cria uma página estática ala Swagger. Seria interessante saber quais os casos de uso desejados, assim começo por onde houver maior demanda.

Quanto a possíveis melhorias pode ficar a vontade para me enviar uma mensagem privada.

Show Renato, não sei como mandar mensagem em privado heheheh mas assim que descobrir te envio. Obrigado pela atenção e parabens pelo trabalho

1 curtida