Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Informações
titleRestrições para uma API RESTful

RESTful seria, então, a API que está de acordo com todas as restrições definidas por Roy.

Os principais critérios para uma API ser RESTful são:

  • Uniform Interface;
    • Resource-based: tenta lidar com recursos invés de métodos;
    • Manipulation of resources through representations: recursos através de uma representação (JSON, XML, HTML.);
    • Self-descriptive Messages:  As respostas são auto descritivas, incluindo informação suficiente para que o cliente saiba como utilizá-las;
    • HATEOAS: Padrão que sempre inclui links uteis junto as respostas de uma requisição.
  • Stateless;Stateless -
      • Não guarde nenhum tipo de estado referente a comunicação;
    • Cacheable;
      • Reduzir o número de chamadas feitas para o endpoint e também melhorar a latência de solicitações para a sua API.
    • Client-Server;
      • web/aplicação deve ser separada da solicitação/armazenamento dos dados.
    • Layered system.
      • O cliente nunca deve chamar diretamente o servidor da aplicação sem antes passar por um intermediador, no caso, pode ser um load balancer ou qualquer outra máquina que faça a interface com o(s) servidor(es)

    Sem seguir todas estas restrições, sua API não será RESTful, será apenas mais uma implementação RPC em cima do protocolo HTTP.

...

Garantir a segurança dos dados também faz parte do desing de uma API, hoje o principal modelo utilizado pela comunidade é o Oauth 2.0, este é um padrão de autenticação, que foi construído para preservar os dados sensíveis de um usuário, minha recomendação seria sempre que possível utiliza-lo, porem caso não seja possível, não deixe sua API sem autenticação, no mínimo utilize uma autenticação do tipo basic, onde geralmente é criado um token em base64 a partir de um usuário e senha.

A utilização de Tokens de acesso, que são gerados pelo serviço REST  devem ser armazenados pelos clientes, via cookies ou HTML 5 Web Storage, devendo também ser enviados pelos clientes a cada nova requisição ao serviço.

Outras tecnologias e padrões para se trabalhar com Tokens:

  • OAUTH;
  • JWT (JSON Web Token);
  • Keycloack.

Stateless

Garanta que sua API não guarde nenhum tipo de estado referente a comunicação, toda requisição deve ser inteligente o suficiente para se resolver, sem armazenar quaisquer dados de seção.

...

  1. As aplicações clients conhecem facilmente o limite e próximos passos de cada domínio
  2. As aplicações clients podem recuperar seus paths dinamicamente sem a necessidade de colocar-los fixo no código
  3. Os desenvolvedores da API podem alterar o esquema de paths sem quebrar as aplicações clients

<acao><rel>self</rel><uri>http://servicorest.com.br/pedidos/1459</uri><method>GET</method></acao>

Open Documentation

Alem de seguir as melhores práticas, faça ainda mais que isso, utilize frameworks como o Swagger, que é um framework open source que apoia o desenvolvedor no desenho, documentação e especificação de suas Api's.

...

https://wssilva-willian.medium.com/design-de-api-rest-9807a5b16c9f

https://imasters.com.br/desenvolvimento/definicao-restricoes-e-beneficios-modelo-de-arquitetura-rest

https://martinfowler.com/articles/richardsonMaturityModel.html