Dominando Estilos de APIs

Compreendendo as vantagens e desvantagens dos principais estilos de APIs e escolhendo as soluções corretas

Dominando Estilos de APIs
× Dominando Estilos de APIs

Dominando Estilos de APIs

Compartilhar

Autores: Lukasz Dynowski
Marcin Dulak

ISBN impresso: 978-85-7522-980-4
ISBN ebook: 978-85-7522-981-1
Ano: 2025
Páginas: 384
Preço impresso: R$ 129,00 O ebook deste livro está disponível na Amazon.

1 opinião | Opine sobre este livro

Descrição do livro

“Dominando Estilos de APIs é uma leitura indispensável para quem leva a sério o desenvolvimento de APIs robustas e escaláveis. Desde o conceito de API e dos diferentes padrões de design, incluindo a análise das vantagens e desvantagens entre os diversos métodos de comunicação disponíveis, este guia magistral reúne tudo o que é essencial sobre design e desenvolvimento de APIs." – Mark Richards, coautor de Fundamentos da Arquitetura de Software

Trata-se de um recurso indispensável para qualquer desenvolvedor que queira entender os fundamentos das APIs e tomar decisões de design mais embasadas para construir sistemas confiáveis.” – William Jamir Silva, engenheiro de software sênior

Uma interface de programação de aplicações (API) permite a troca de dados entre sistemas, como aplicações web, microsserviços e dispositivos IoT. Neste guia prático, os autores Lukasz Dynowski e Marcin Dulak ensinam desenvolvedores e arquitetos de software a projetar e implementar APIs REST, GraphQL, gRPC, webhooks, WebSocket, APIs baseadas em mensageria, entre outras.

A obra analisa os estilos de API mais utilizados sob as perspectivas de rede, aplicação e arquitetura. Você aprenderá a determinar o tipo de API mais adequado para a sua aplicação e a tomar decisões de design embasadas ao longo do processo. Também compreenderá as vantagens e desvantagens envolvidas entre os diferentes estilos de APIs e adquirirá conhecimento prático sobre como implementá-los.

• Conheça as origens e a evolução dos estilos de APIs.

• Aprenda os protocolos de rede utilizados pelos diferentes tipos de APIs.

• Compreenda as vantagens e desvantagens de cada estilo de API.

• Aprenda a escolher o estilo de API mais adequado para seu projeto.

• Aprenda a implementar, proteger e documentar suas APIs.

Ver menos ▲

Sumário

  • Apresentação
  • Prefácio
  • CAPÍTULO 1: Conceito de API
  • O que é uma API?
  • APIs de rede
  • Conceitos de comunicação via API
    • Mensagem
    • Modos de transmissão
    • Tipos de comunicação síncrona e assíncrona
  • História das APIs
  • Por que APIs?
  • O que são estilos de API?
  • API como produto
  • Ciclo de vida da API
    • Planejamento
    • Design
    • Implementação
    • Testes
    • Implantação
    • Manutenção
    • Encerramento
  • Governança, gerenciamento e plataforma de APIs
  • Futuro das APIs
  • Resumo
  • CAPÍTULO 2: Padrões de design de API
  • Exemplos de padrões de design de API
    • Idioma da API
    • Nomenclatura de APIs
    • Adaptando APIs a mudanças
    • Versionamento de APIs
    • Codificação
    • Filtragem
    • Contagem e ordenação
    • Paginação
    • Tarefas de longa duração
    • Deduplicação de requisições
    • Repetição de requisições
    • Limitação de taxa
    • Cache
    • Exclusão
  • Segurança em APIs
    • OWASP Top 10 API Security
  • Exemplos de padrões de segurança em APIs
    • Criptografia, autenticação e autorização
    • Sanitização e validação
    • Mitigação da prática de scraping
  • Boas práticas de design de API
  • Resumo
  • CAPÍTULO 3: Rede
  • Protocolos de rede
  • API de sockets
  • TCP/IP e o modelo OSI
  • Implementando o serviço TCP ECHO
    • Configuração do laboratório de rede
    • Serviço TCP ECHO
    • Servidor TCP ECHO
    • Cliente TCP ECHO com Netcat
    • Cliente TCP ECHO com Scapy
  • Segurança
    • Cliente TCP ECHO com OpenSSL
  • Exercícios
  • Resumo
  • CAPÍTULO 4: Protocolos da web
  • O que é hipertexto?
  • Configuração do laboratório HTTP
  • HTTP/0.9
    • HTTP e HTML em ação
  • HTTP/1.0
    • Cabeçalhos e corpo da mensagem HTTP
  • HTTP em um navegador
    • Como o DNS afeta as conexões do navegador
    • Conexões TCP paralelas em um navegador
  • Limitações do TCP
    • Bloqueio de cabeçalho de linha no TCP
    • Congestion Avoidance e Slow Start no TCP
  • HTTP/1.1
    • Persistência de conexão HTTP
  • HTTP/2
    • Quadros e fluxos no HTTP/2
  • HTTP/3
    • Estabelecimento de conexão QUIC 1-RTT
  • Exercícios
  • Resumo
  • CAPÍTULO 5: REST
  • HTTP, recurso e URI
  • Comunicação cliente-servidor
  • Origens do REST
  • Modelos de maturidade de API
  • RESTful, RESTless ou REST
  • Ser RESTless é suficiente?
  • Implementação
    • Endpoints da API
    • Versionamento de APIs
    • CRUD
    • Paginação
    • Limitação de taxa
    • Cache
  • Segurança
    • JSON Web Token
    • Segurança da Camada de Transporte (TLS)
  • Documentação
    • Especificação OpenAPI
    • Três abordagens para especificação de API
  • Trade-offs
  • Quando utilizar REST
  • Exercícios
  • Resumo
  • CAPÍTULO 6: GraphQL
  • Problemas com o REST
  • Pensando em grafos
  • Origens do GraphQL
  • GraphQL versus REST
  • Componentes básicos do GraphQL
  • Como o GraphQL funciona
  • Implementação
    • GraphiQL
    • Executando mutações
  • CRUD
    • Read
    • Create, Update, Delete
  • Segurança
    • Ataques comuns ao GraphQL
    • Autenticação
  • Documentação
  • Trade-offs
  • Quando utilizar GraphQL
  • Exercícios
  • Resumo
  • CAPÍTULO 7: Feeds da web
  • O que é um feed da web?
  • Por que feeds da web?
  • Evolução dos feeds da web
  • O que é o feed Atom?
  • Implementação
  • Leitura de feeds
  • Segurança
  • Trade-offs
  • Exercícios
  • Resumo
  • CAPÍTULO 8: gRPC
  • Chamada de Procedimento Remoto (RPC)
  • Origens do gRPC
  • Serialização com Protobuf
  • Geração de código
  • Servidor e cliente ECHO com gRPC
  • Os quatro tipos de RPC
  • Formato wire do Protobuf
  • Implementação
    • Serviço Enricher do feed Atom com gRPC
  • Segurança
  • Documentação
  • Trade-offs
  • Quando utilizar gRPC
  • Exercícios
  • Resumo
  • CAPÍTULO 9: Webhooks
  • O que são webhooks?
  • Origem dos webhooks
  • Webhooks de entrada e saída
  • Integração e fluxo de dados
  • Implementação
  • Segurança
  • Documentação
  • Trade-offs
  • Quando utilizar webhooks
  • Exercícios
  • Resumo
  • CAPÍTULO 10: WebSocket
  • WebSocket e API WebSocket API
  • Handshake de abertura do WebSocket
  • Implementação
    • Cliente e servidor ECHO WebSocket
    • Protocolo WebSocket
    • Servidor de alertas meteorológicos com WebSocket
    • Cliente de alertas meteorológicos com WebSocket
  • Segurança
    • Validação da origem
    • Segurança por host confiável
    • JSON Web Token
    • Segurança da Camada de Transporte (TLS)
  • Documentação
  • Trade-offs
  • Quando utilizar WebSocket
  • Exercícios
  • Resumo
  • CAPÍTULO 11: Mensageria
  • O que é mensageria?
  • O que é uma fila?
  • Padrões de mensageria
    • Padrão de fila de trabalho
    • Padrão publicar-assinar
    • Padrão de roteamento
    • Padrão baseado em tópicos
    • Padrão de requisição-resposta
  • Implementação
    • Fila de trabalho
  • Segurança
    • Mensagens sem criptografia em trânsito
    • Mensagens criptografadas em trânsito
    • Autenticação e autorização
  • Documentação
    • Especificação AsyncAPI
    • Documentação da AsyncAPI
    • Versionamento de mensagens
  • Trade-offs
  • Quando utilizar mensageria
  • Exercícios
  • Resumo
  • Índice remissivo
Ver sumário completo ▼

Sobre os autores

Lukasz Dynowski

Lukasz Dynowski é consultor independente, com mais de uma década de experiência em TI. Especializado em computação de alto desempenho, atuou em diferentes cargos ao longo da carreira, incluindo desenvolvedor full stack, engenheiro DevOps e arquiteto de software.… Ver perfil completo ▶

Marcin Dulak

Marcin Dulak tem mais de duas décadas de experiência em TI e, nos últimos anos, vem se especializando em infraestruturas on-premises e em nuvem para aplicações web e de dados.… Ver perfil completo ▶

Opinião dos leitores

Ailton T

O livro “Dominando Estilos de APIs” apresenta uma visão bem interessante sobre os diferentes modelos de integração utilizados no desenvolvimento moderno, abordando conceitos relacionados a APIs REST, eventos, mensageria e outros estilos de comunicação entre sistemas. Achei interessante como o conteúdo vai além da implementação técnica e discute também os impactos arquiteturais, acoplamento, escalabilidade e escolha do estilo mais adequado para cada cenário. Isso ajuda bastante a entender que não existe uma única abordagem ideal para todos os tipos de aplicação. A leitura é objetiva e bastante alinhada com desafios reais enfrentados por equipes que trabalham com integrações e arquiteturas distribuídas, principalmente em ambientes corporativos mais complexos. No geral, considero um livro muito útil para profissionais que querem aprofundar conhecimentos em arquitetura de integração e tomar decisões mais conscientes na construção de APIs e serviços modernos.

Ver todas ▼