Como utilizo uma API?

Olá não tenho um grande conhecimento em programação e estou com muita dificuldade de entender e encontrar algo sobre como eu utilizo as informações de API fornecidas por um site, como monto o código para que as respostas apareçam em uma tabela por exemplo, estou querendo montar um site que a pagina inicial seja parecida com a pagina inicial do site que fornece a API que é o coincap.io, alguém pode me ajudar? Gostaria de que postassem um exemplo do código para que as informações abaixo:

/front

  • Description: Front Page Data of current coin stats
  • URL: http://coincap.io/front
  • Response:
    [
    {
    "cap24hrChange": -6.05,
    "long": "Bitcoin",
    "mktcap": 65173805891.25,
    "perc": -6.05,
    "price": 3934.85,
    "shapeshift": true,
    "short": "BTC",
    "supply": 16563225,
    "usdVolume": 2337600000,
    "volume": 2337600000,
    "vwapData": 3997.5639538606733,
    "vwapDataBTC": 3997.5639538606733
    },
    {
    "cap24hrChange": -6.59,
    "long": "Ethereum",
    "mktcap": 26016428866.32,
    "perc": -6.59,
    "price": 275.02,
    "shapeshift": true,
    "short": "ETH",
    "supply": 94598316,
    "usdVolume": 945732000,
    "volume": 945732000,
    "vwapData": 278.03921067242516,
    "vwapDataBTC": 278.03921067242516
    }
    ]
/global
  • Description: *****
  • URL: http://coincap.io/global
  • Response:
    {
    "altCap": 70056946653.0021,
    "bitnodesCount": 9350,
    "btcCap": 65003614189.66167,
    "btcPrice": 3924.57472440673,
    "dom": 69.48,
    "totalCap": 135060560842.66382,
    "volumeAlt": 578834063.4608318,
    "volumeBtc": 1317521389.0430577,
    "volumeTotal": 1896355452.5038888
    }
ficassem em uma pagina html com o css junto no mesmo arquivo resultando em uma pagina igual da imagem abaixo:

forum.png


Por favor quem puder ajudar eu agradeço muito a paciência e seu tempo gasto para responder.
 
Erm, se não sabes webdesign básico devias começar por aí, a aprender js, css e html. A internet está cheia de tutoriais; quando conseguires fazer isso usando dados locais vais provavelmente precisar de aprender backend para ir buscar os dados à api, senão bates nas proteções de cross-domain requests dos browsers.

Start small :)
 
Última edição:
Ola para todos, como descrevi no post inicial, não tenho muita experiencia com programação e web design e nunca utilizei fóruns na minha vida e achei que se tratava de um local onde os usuários criam posts com suas duvidas e recebem respostas com informações ou links com materiais que ajudem a solucionar a duvida em questão, possibilitando a troca de conhecimento criando uma rede de colaboradores, mas acho que me enganei, pois 10 dias depois do post a unica resposta que tive foi: "Erm, se não sabes webdesign básico devias começar por aí, a aprender js, css e html. A internet está cheia de tutoriais; quando conseguires fazer isso usando dados locais vais provavelmente precisar de aprender backend para ir buscar os dados à api, senão bates nas proteções de cross-domain requests dos browsers.", ao lagadu Power Member, agradeço por pelo menos responder e já que ninguém respondeu como eu esperava, posto hoje uma parte da resposta:

Para a tabela com o Rank de Cripto Moedas usando os seguintes dados da API e acrescentando o web socket do coincap.io:
/front
  • Description: Front Page Data of current coin stats
  • URL: http://coincap.io/front
  • Response:
    [
    {
    "cap24hrChange": -6.05,
    "long": "Bitcoin",
    "mktcap": 65173805891.25,
    "perc": -6.05,
    "price": 3934.85,
    "shapeshift": true,
    "short": "BTC",
    "supply": 16563225,
    "usdVolume": 2337600000,
    "volume": 2337600000,
    "vwapData": 3997.5639538606733,
    "vwapDataBTC": 3997.5639538606733
    },
    {
    "cap24hrChange": -6.59,
    "long": "Ethereum",
    "mktcap": 26016428866.32,
    "perc": -6.59,
    "price": 275.02,
    "shapeshift": true,
    "short": "ETH",
    "supply": 94598316,
    "usdVolume": 945732000,
    "volume": 945732000,
    "vwapData": 278.03921067242516,
    "vwapDataBTC": 278.03921067242516
    }
    ]
A resposta que funcionou perfeitamente sem bloqueio por parte do navegador ficou assim:
**************
- HTML = index.html
**************

<!DOCTYPE html>
<html lang="en" >

<head>
<meta charset="UTF-8">
<title>Cryptocurrency Live Market Capitalization</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/css/materialize.min.css'>

<link rel="stylesheet" href="css/style.css">

</head>

<body>
<div ng-app="myApp">
<div ng-controller="CoinTableCtrl">
<h1 class="center">TutoCoins.info</h1>
<table style="margin-bottom: 2vh;">
<thead>
<tr>
<th class="center">Name</th>
<th class="center">Market Cap</th>
<th class="center">Price</th>
<th class="center">Supply</th>
<th class="center">24 Hour Volume</th>
<th class="center">%24hr</th>
</tr>
</thead>
<tbody>
<tr animate-on-change="coin.price" ng-repeat="coin in rowData">
<td class='center'>{{coin.name}}</td>
<td class='center'>{{coin.mktcap}}</td>
<td class='center'>{{coin.price}}</td>
<td class='center'>{{coin.supply}}</td>
<td class='center'>{{coin.volume}}</td>
<td class='center'>{{coin.percent}}</td>
</tr>
</tbody>
</table>
</div>
</div>
<script src='https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.5/angular-animate.min.js'></script>
<script src='https://cdn.socket.io/socket.io-1.4.5.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/angular-socket-io/0.7.0/socket.min.js'></script>


<script src="js/index.js"></script>




</body>

</html>

**************
- CSS = style.css
**************

.change {
background-color: #ff0000;
}
.change-add,.change-remove {
background-color: white;
-webkit-transition: all 0.5s;
transition: all 0.5s;
-webkit-transition: all 0.5s ease-in-out;
}
.change-add-active {
background-color: #ff0000;
}
.change-remove {
background-color: #ff0000;

}
.change-remove-active {
background-color: white;
}
.change-up {
background-color: #00ff00;
}
.change-up-add,.change-up-remove {
background-color: white;
-webkit-transition: all 0.5s;
transition: all 0.5s;
-webkit-transition: all 0.5s ease-in-out;
}
.change-up-add-active {
background-color: #00ff00;
}
.change-up-remove {
background-color: #00ff00;
}
.change-up-remove-active {
background-color: white;
}

*****************
- JS = index.js
*****************

angular
.module('myApp', ['ngAnimate', 'btford.socket-io'])

.factory('mySocket', mySocket)

.directive('animateOnChange', animateOnChange)

.controller('CoinTableCtrl', CoinTableCtrl);

// Create the socket we'll use for the coin data
function mySocket(socketFactory) {
return socketFactory(
{
ioSocket: io.connect('https://socket.coincap.io')
}
);
}

// Creates our animate-on-change directive
function animateOnChange($animate,$timeout) {
return function(scope, elem, attr) {
// we're watching each coin's price
scope.$watch(attr.animateOnChange, function(newValue, oldValue) {
// make sure the price has changed +/-
if (newValue != oldValue) {
// was the change for profit or loss?
var c = newValue > oldValue ? 'change-up' : 'change';
// add class 'change-up' for profit and 'change' for loss
$animate.addClass(elem,c).then(function() {
// remove class after a timeout. duration is handled in CSS
$timeout(function() {$animate.removeClass(elem,c)});
});
}
});
};
}

function CoinTableCtrl($http, $filter, $scope, mySocket) {
var self = this;
// store our coin names here
self.topTen = [];
// table iterates over this variable to create rows
$scope.rowData = {};
// gets our initial data for the table (on load) so it's not
// waiting for socket data to populate each coin
$http
.get('https://coincap.io/front')
.then(function (response) {
// only grab the top ten coins
for (var i = 0; i < 100; i++) {
var msg = response.data;
// add to array of coin names
self.topTen.push(msg.short.toString());
// construct objects to contain each row's data
$scope.rowData[msg.short.toString()] = {
name: msg.long + ' ' + msg.short,
mktcap: $filter('currency')(msg.mktcap, '$', 0),
price: $filter('currency')(msg.price, '$', 6),
supply: $filter('number')(msg.supply, 0),
volume: $filter('currency')(msg.volume, '$', 0),
percent: $filter('number')(msg.cap24hrChange).toString() + '%'
};
}

mySocket.on('trades', function (tradeMsg) {
// check if received 'trade' is with a coin we're displaying
if (self.topTen.includes(tradeMsg.message.msg.short)) {
var msg = tradeMsg.message.msg;

// update the data in received coin's row
$scope.rowData[msg.short] = {
name: msg.long + ' ' + msg.short,
mktcap: $filter('currency')(msg.mktcap, '$', 0),
price: $filter('currency')(msg.price, '$', 6),
supply: $filter('number')(msg.supply, 0),
volume: $filter('currency')(msg.volume, '$', 0),
percent: $filter('number')(msg.cap24hrChange).toString() + '%'
};
}
});
});
}
************

Passo a passo:
1º Crie uma pasta para o site, ex: "site" (essa pasta pode ter qualquer nome, as outras devem ser criadas com o nome informado no passo a passo).
2º Dentro da pasta "site" crie mais 2 pastas: css e js.
3º Ainda na pasta "site" crie um arquivo index.html e cole o código HTML acima.
4º Na pasta css crie o arquivo style.css e cole o código CSS acima.
5º Na pasta js crie o arquivo index.js e cole o código JS acima.
6º Transfira o conteúdo da pasta "site" para seu servidor de hospedagem e acesse o endereço do seu site para ver o resultado.

Exemplo:
- site

- index.html
- css

- style.css
- js
- index.js

DEMO: https://tutocoins.info
CÓDIGO: https://codepen.io/psychofish/pen/ypqbQL

Se alguém quiser ajudar e conseguir postar a resposta para criar a barra com a API /global eu agradeço !
 
Última edição:
"Não é com vinagre que se apanham moscas"

Se pretendes começar a casa pelo telhado, temo que este local não seja o indicado para ti.

Por outro lado se pretendes aprender, tens que começar pelas bases, tal como o outro utilizador o mencionou.

Tanto quanto sei, aqui ninguém te dá soluções de borla. Se queres uma solução final, pagas a um freelancer para ele te a fazer.
 
"Não é com vinagre que se apanham moscas"

Se pretendes começar a casa pelo telhado, temo que este local não seja o indicado para ti.

Por outro lado se pretendes aprender, tens que começar pelas bases, tal como o outro utilizador o mencionou.

Tanto quanto sei, aqui ninguém te dá soluções de borla. Se queres uma solução final, pagas a um freelancer para ele te a fazer.

Acredito que o código está correto, ou não? Mandar as pessoas irem estudar é muito fácil e essa resposta serve para qualquer post, tipo, como faço um bolo? ah acho que se você não tens conhecimento em culinária deves começar com confeitaria... não estou querendo saber qual curso devo fazer pra conseguir o resultado, e sim como chego no resultado, mas teste o código, nem foi eu quem fez, só corrigi alguns poucos erros que achei, não estou querendo levar créditos, estou querendo ajuda e colaboração, sei que é ruim fazer as coisas de graça para os outros, mas isso é uma duvida que muitos tem e não é fácil de encontrar algo direto, só cursos e apostilas, mas acredito que o código está funcionando e seja seguro, teste.
 
Ola para todos, como descrevi no post inicial, não tenho muita experiencia com programação e web design e nunca utilizei fóruns na minha vida e achei que se tratava de um local onde os usuários criam posts com suas duvidas e recebem respostas com informações ou links com materiais que ajudem a solucionar a duvida em questão, possibilitando a troca de conhecimento criando uma rede de colaboradores, mas acho que me enganei

e tu em 10 dias não ajudaste ninguém...

entras no forum pela primeira vez, metes uma pergunta, ninguém aparece para te ajudar, logo é porque eles nao querem (pode ser por nao saberem ou não verem a pergunta, etc), mas qual é a tua desculpa?
Não sabes nada de programação e web design, mas não sabes nada para em nenhuma outra coisa no forum ou nem quiseste saber?
 
e tu em 10 dias não ajudaste ninguém...

entras no forum pela primeira vez, metes uma pergunta, ninguém aparece para te ajudar, logo é porque eles nao querem (pode ser por nao saberem ou não verem a pergunta, etc), mas qual é a tua desculpa?
Não sabes nada de programação e web design, mas não sabes nada para em nenhuma outra coisa no forum ou nem quiseste saber?

Me desculpe você tem razão, vou tentar colaborar mais antes de reclamar.
 
de qualquer maneira ajudava, mas nao percebo muito de html ou linguagens web, espetar um api num programa é comigo e de cryptos então ja fiz varias vezes, agora em web não sei :P
 

Antes de mais, se quiseres aprender estás no sitio certo. Se quiseres que te façam o projecto tens, como já foi dito, de pagar a alguém que te faça. É óbvio pelas tuas respostas esperavas que alguém chegasse aqui e te fizesse isso tudo. A cereja no topo do bolo foi a forma como achas que alguém aqui te deve alguma coisa.

Mas vou dar o beneficio da dúvida e assumir que realmente queres aprender. E já que meteste código, vamos partir dai já que isso faz quase o que queres, sendo apenas preciso perceber como funciona, modificar para usar outro endpoint e escrever o HTML para ficar igual à imagem que pretendes.

Recursos:

HTML: https://www.w3schools.com/html/ - para aprender html, diria que tudo o que precisas está nesse site
AngularJS: https://docs.angularjs.org/guide - como o código que meteste usa angularjs, podes consultar a documentação oficial aqui.
CSS: https://www.w3schools.com/css/ - para aprender CSS, mais uma vez penso que não é preciso mais do que podes encontrar ai para este projeto

A API devolve JSON por isso aqui fica mais um recurso para perceberes como este formato funciona:

https://www.w3schools.com/js/js_json_intro.asp

Estes 4 recursos chegam e sobram para resolver o problema. E de angular apenas precisas de ver o suficiente para perceber o código que encontraste visto que percebendo isso, fazer o que queres é trivial.

Boa sorte.
 
Back
Topo