Diego França

Modelo de maturidade de Richardson – Mensurando a maturidade da sua api

Fala, pessoal! Hoje tenho algo interessante sobre api restful. Quando você está criando uma api restful já parou para pensar se o que estamos desenvolvendo está correto e se existe algum padrão a ser seguido ao criar uma api restful?

Existe sim uma maneira de saber se o que estamos desenvolvendo é uma api restful e o grau da sua maturidade, chama-e modelo de maturidade de Richardson. A primeira vez que ouvi esse termo foi no canal da Michelli Brito, recomendo acompanhar o canal dela. Fiquei motivado em escrever um pouco do meu entendimento acerca do assunto, mas antes de iniciar quero fazer um overview da diferença entre rest e restful, ainda têm muitos devs que confundem esses termos. E sem mais delongas; bora lá.

Diferença entre Rest e Restful

O rest (Representational State Transfer) é um padrão arquitetural que define um conjunto de restrições para a criação de web services, já o restful são web services que implementam esse padrão arquitetural.

O que é o modelo de maturidade de Richardson

Richardson criou 4 pilares que todo web service deve seguir para ser considerada restful. Há algumas controvérsias em relação a isso. Alguns desenvolvedores pragmáticos dizem que se o web service implementa até o nível 2 já pode ser considerado rest, por outro lado, devs que são mais puristas consideram que para um web service ser considerado rest deve implementar os 4 níveis.

Níveis de maturidade

Nível 0

Uma api está no nivel 0 quando se utiliza do protocolo http, porém só utiliza um único método http(normalmente post).

Nível 1 – Recursos

Uma api está no nível 1 quando se utiliza do protocolo http e têm as uris(recursos) bem definido — como padrão as uris devem ser nomeadas como substantivos e não como verbos —.

Nível 2 – Verbos HTTPs

Api além de utilizar o protocolo http como comunicação, utiliza-se a semântica corretas dos seus verbos e dos seus códigos de retorno.

Nível 3 – Controle de hipermédia

Além de ter implementado os níveis acima, adicionamos o HATEOAS(hipermedias) na nossa api para alcançar o nível 3 de maturidade.

Referências

Richardson’s maturity model – Martin Fowler

O que é uma api Restful na prática? Maturidade de Richardson