- Front-End Web & Mobile • Auth0 Ambassador • Criador de conteúdo técnico • Contribuidor de código aberto • Natural de Tupã • Formado em Ciência da Computação • Casado, 1 filha, 1 filho e 1 cachorrinha Apresentação
• Conjunto de rotinas e padrões estabelecidos por um software para a utilização de suas funcionalidades. • API pode ser um sistema WEB, sistema operacional, banco de dados, hardware ou biblioteca de software. • Conceito API First. • API WEB: ◦ Protocolo: HTTP ◦ Formatos: JSON ou XML ◦ Padrões: REST, SOAP, GraphQL ou gRPC O que é API?
Protocolo de comunicação HTTP. • Ação indicada no método HTTP. • Endpoint representado por substantivos no plural que representam a entidade. • Verbos correspondem às operações CRUD. • JSON é o formato padrão para envio e recebimento dos dados. • Códigos de status HTTP para definir o resultado da ação. • Controle de versão. • Filtro, ordenação, paginação e limite. REST: Conceitos, fundamentos e padrões
• 400: Requisição inválida • 401: Requisição não autorizada • 403: Requisição sem permissão • 404: Endpoint não existe • 429: Muitas requisições • 500: Erro interno Códigos de status HTTP
(Cross-Origin Resource Sharing). Biblioteca: cors Access-Control-Allow-Origin: Informa as origens permitidas. Access-Control-Allow-Methods: Informa os métodos HTTP permitidos. Access-Control-Allow-Headers: Informa os cabeçalhos HTTP permitidos. • Cabeçalhos HTTP. Biblioteca: helmet Content-Security-Policy: Evita ataques de cross-site scripting. Strict-Transport-Security: Informa do navegador para preferir o uso do HTTPS. X-Frame-Options: Evita ataques de clickjacking. X-Powered-By: Remove esse cabeçalho que retorna informações do servidor. Segurança
• Single thread (event loop). • Construído sobre o motor JavaScript V8 do Google Chrome. • JavaScript no servidor. • npm (Node Package Manager): Gerenciador de pacotes. • Multiplataforma (Linux, Mac OS, Windows, entre outras). • Frameworks WEB: Express.js, Nest.js, Koa.js, Hapi.js, entre outros. • Empresas que usam: Netflix, Twitter, Uber, LinkedIn e Zenvia. Node.js