REST e Estados

Boas práticas 1 Reply

Olá, primeiramente, o que é REST?

Basicamente é um acrônimo para Representative State Transfer, ou seja, uma forma de transferir uma representação de um determinado estado de uma aplicação. Vou explicar com OO pois é como me sinto mais confortável.

Pense em uma classe Pessoa. Ela tem Nome, Sexo e um boolean representando se ela está on-line ou não em um determinado sistema:

Quando instanciamos esta classe, obtemos um objeto que, neste caso, vou chamar de “josecrildo”, ficando da seguinte maneira:

Bom, o objeto josecrildo tem o estado determinado por suas propriedes. Podemos dizer que ele está on-line e tem sexo masculino e nome Josecrildo. Se mudarmos EstaOnline para false, temos outro estado para Josecrildo, pegou a pegada?

Assim, serviços REST foram pensados para transferir representações de estado, através de tecnologias simples, como o protocolo HTTP e pacotes de texto, ao contrário das práticas de serviços SOAP, no qual a complexidade é muito maior. Enquanto neste último é necessário definir um contrato, configurações, eventualmente protocolos específicos e uma certa burocracia, o REST utiliza apenas os mesmos princípios da exibição de páginas web.

Por consequência, um cliente do serviço que irá consumir objetos gerados à partir da classe Pessoa, fará requisições ao servidor, que retornará o conteúdo, normalmente, em função do método. Por ex:

PESSOA -> http://aplicacao/Pessoa

GET /Pessoa -> retorna uma lista de pessoas

GET /Pessoa/:id -> retorna um objeto de pessoas específica de acordo com :id (/Pessoa/10)

POST /Pessoa -> cria um novo objeto de pessoa

PUT /Pessoa/ -> substitui pessoa por outro objeto de pessoa

PATCH /Pessoa/:id -> altera o objeto de pessoa com :id

DELETE /Pessoa/:id -> exclui o objeto de pessoa com :id

OPTIONS /Pessoa -> lista os métodos disponíveis para /Pessoa

O produto resultante dessas requisições pode variar de acordo com o content-type ou ser fixo e, como resposta, o cliente irá receber o conteúdo em formato texto, representando o estado citado acima:

 

Enfim, todo sistema possui estados, que são os valores atuais de seus atributos ou propriedades e eles podem ser representados em modo texto. REST trata de transferir estes estados através de requisições HTTP, permitindo prover serviços simples e de fácil consumo.

Até mais,

One thought on “REST e Estados

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *