API Flashcards
O que é uma API?
API(Application programming service) é uma coleção de métodos/recursos disponibilizados por um serviço para interação indireta
o que faz uma API?
Ela fornece métodos e recursos que podem ser utilizados por sistemas diferentes, ou entre o mesmo sistema, pode ser fornecido para desenvolvedores, fornecendo serviços para cliente. etc
Por que utilizar API?
A API ja fornece código pronto, testado e seguro. Por conta disso é utilizado para ajudar a vida de desenvolvedores, usuários e serviços
Exemplos de API
Existem várias API com finalidades e targets diferentes. Um exemplo de API é a do Java, que vai fornecer métodos e recursos para o desenvolvedor.
Exemplos de API do java
Java.io -> vai fornecer métodos de input e output
Java.applet -> fornece pequenas aplicações java
java.math -> fornece métodos para facilitar calculos e operações matemáticas
java.security -> fornece para diversas área interfaces de segurança, criptografia, PKI
O que é REST?
REpresentional State Transfer -> REST
REST é uma arquitetura que define algumas regras de comunicação entre sistemas.
Precisa-se entender o funcionamento por trás da API para utilizá-la?
Não, não precisamos. Uma das vantagens e características da API é justamente o seu uso sem precisar saber o que ocorre por de baixo dos panos. Onde a complexidade e a lógica não precisa ser aparente ao usuário final
Por que devemos usar APIs REST
APIs restful possuem diversos motivos para serem utilizados:
- Padrão de mercado: O padrão rest é o padrão de criação de API mais utilizado atualmente
- Simplicidade e facilidade de uso: as apis restful são baseadas nos padrões http, URI
Flexibilidade, desempenho(é leve e eficiente)
Suporte para JSON/XML
Quais são as características da API REST?
Arquitetura Cliente-Servidor: Separação clara entre cliente e servidor, permitindo a evolução independente de cada parte.
Estado Representacional: O servidor não mantém estado da sessão do cliente entre requisições. Cada requisição do cliente deve conter todas as informações necessárias.
Interface Uniforme: Utiliza URIs para identificar recursos e métodos HTTP (GET, POST, PUT, DELETE) para manipular esses recursos.
Sistema sem Estado (Stateless): Cada requisição do cliente deve conter todas as informações necessárias para ser entendida pelo servidor, sem depender de requisições anteriores.
Cacheabilidade: As respostas do servidor devem ser explicitamente marcadas como cacheáveis ou não-cacheáveis para melhorar a performance.
Uso de Hiperlinks (HATEOAS): As representações dos recursos devem conter links para permitir a descoberta e navegação para recursos relacionados.
Quais as vantagens da API REST?
As 3 característica do padrão REST são o seguinte:
- Boas práticas: O padrão rest possui padrões bem definidos
- Comunicação entre sistemas: O padrão arquitetural REST tem como foco a comunicação entre os sistemas, e com isso a independencias do front e do back.
- Padrão de linguagem: Seguir o padrão de nomenclaturas para identificar recursos e suas operações
A interface se torna mais flexível e reutilizável
Uma APIRestful bem definida, vai resultar em um back end e front-end que não se encontram, onde somente a API vai ter como intermédio. Essa separação clara vai poder resultar em uma utilização de outros sistemas, cliente do back end ou front end.
Padrão REST e o protocolo HTTP
O padrão REST comunica muito bem com o protocolo http/https. Por conta disso o padrão rest é bastante utilizado para APIs que fazem comunicação via http/https,
Isso por conta do http ter arquitetura cliente-servidor
O QUE COMPÕE O REST?
Comunicação Cliente-Servidor:
O cliente e o servidor devem ser separados, e cada um deve ser independente da implementação do outro. Isso permite que cada componente seja modificado, atualizado ou substituído sem afetar o outro.
Estado Representacional:
O servidor contém todo o estado necessário para manipular uma solicitação. Isso significa que todas as informações necessárias para entender e processar uma solicitação devem estar contidas na própria solicitação, e não mantidas no servidor entre solicitações.
Interface Uniforme:
O padrão REST define uma interface uniforme entre o cliente e o servidor, composta por quatro restrições:
Identificação de recursos: Recursos são identificados por URIs (Uniform Resource Identifiers).
Manipulação de recursos através de representações: Os recursos são manipulados através da manipulação de suas representações.
Mensagens auto-explicativas: As mensagens de solicitação e resposta devem ser autoexplicativas.
Hiperlink como motor do estado da aplicação (HATEOAS): As representações dos recursos devem conter links para permitir a descoberta e navegação para recursos relacionados.
Operações CRUD com Métodos HTTP:
O REST mapeia as operações CRUD (Create, Read, Update, Delete) para os métodos HTTP:
GET: Para recuperar recursos.
POST: Para criar novos recursos.
PUT ou PATCH: Para atualizar recursos existentes.
DELETE: Para excluir recursos.
Sem Estado (Stateless):
O servidor não mantém nenhum estado da sessão do cliente entre solicitações. Cada solicitação do cliente deve conter todas as informações necessárias para processar a solicitação.
Cacheável:
As respostas do servidor devem ser explicitamente marcadas como cacheáveis ou não-cacheáveis. Isso permite que o cliente armazene em cache as respostas e reduza a latência e a carga do servidor.