JS-0605 - JavaScript Completo ES6 - API e HTTP

Relacionando métodos HTTP com a API
API (Application Interface Programming)
Seja um servidor, um aplicativo, um objeto JavaScript ou qualquer outro dispositivo onde seja possível a interação através de comandos, estamos utilizando uma aplicação.
A programação, se refere aos encadeamento de comandos que são disparados a cada ação via aplicação, onde se espera um resultado e são previamente definidos.
A interface são os comandos criados para permitir a interação com a aplicação. Nos objetos do JavaScript, a interface são os métodos que permitem a interação com a aplicação (navegador no caso de uma Web API).
Como exemplos de API temos o GitHub, onde interagindo sobre a API (https://api.github.com) e utilizando um dos métodos disponíveis (que requerem parâmetros ou não), receberemos o resultado no formato JSON:

HTTP (Hypertext Transfer Protocol)
HTTP/HTTPS são os protocolos utilizados para o envio e recepção de dados via web.
Uma requisição é realizada através de uma URL. O método padrão é o GET, mas existem outros, tais como; POST, UPDATE, DELETE etc.
Abaixo, um exemplo de um POST disparado para a url de perda de senha do meu projeto Dogs. A constante options contém o método, o headers e o corpo, sendo este último os dados que são requeridos pela API para executar determinada ação (recuperação de senha). Os dados são enviados pelo Fetch e o console.log é o retorno da API que já está configurado.
Métodos utilizados:
Os métodos mais utilizados são os seguintes:
- GET: realiza a solicitação da informação (posts, usuários etc);
- POST: envia dados para a API (criação de posts, usuários etc);
- PUT: utilizado para atualizar dados, utilizando como parâmetro um registro existente. É um "POST" em um dado existente;
- DELETE: deleta um registro; e
- HEAD: realiza solicitação de metainformações dos headers.
Ainda temos outros:
- TRACE: ecoa o pedido, de maneira que o cliente possa saber o que os servidores intermediários estão mudando em seu pedido;
- OPTIONS: recupera os métodos HTTP que o servidor aceita; e
- CONNECT: para usar com um proxy que possa se tornar um túnel SSL e TLS.
CORS:
Quando realizados requisições via API é muito comum ocorrer erros de políticas de CORS (Cross-Origin Resource Sharing), que é um método de gerência sobre o compartilhamento de recursos entre diferentes origens (cliente x servidor e servidor x servidor).
É definido no servidor a permissão ou não a recursos através de scripts por outros sites, utilizando o Access-Control-Allow-Origin. Se o servidor não permitir o acesso, este será bloqueado, contudo, é possível passar por cima do bloqueio utilizando um proxy, não garantindo assim a segurança total.