Você está na página 1de 16

Otimizado há 9 minutos

https://becode.com.br/o-que-e-api-rest-e-restful/

Ver original

Menu

Menu

O que é API? REST e RESTful? Conheça as definições e diferenças!

por

Jackson Pires há 3 anos

100.7k Visualizações

40

Se o título desse post chamou a sua atenção é por que você é mais uma daquelas pessoas que já
tentou aprender e entender as famosas siglas: API, REST e “RESTful”. Contudo, por algum motivo ou
outro, continua com dúvidas no assunto. Talvez você até ache que REST, por exemplo, se resume a
simples novos métodos HTTP que, por sua vez, podem ser usados quando são realizadas novas
requisições de um cliente a um sevidor na web.

Pensando nisso, nesse post, irei esclarecer alguns pontos sobre o assunto. E, se ao final do artigo, eu
conseguir atingir o meu objetivo, você estará se perguntando: “OMG! onde posso aprender mais
sobre o assunto!?” Então vamos lá!

APIs: problemáticas e origem

É cada dia mais comum termos aplicações que funcionem única e exclusivamente pela Internet,
sendo consumidas por navegadores em desktops, notebooks ou dispositivos móveis, isto é,
independente de plataforma. Por outro lado, grandes empresas precisam alimentar seus softwares
de gestão (estoque, contabilidade, ERP e redes sociais) com dados, a todo momento.

Com essas duas problemáticas em mente (sofwares sendo acessados pela Web e empresas
precisando alimentar seus sistemas) começou-se a pensar em uma solução de sofware que
permitisse a conversa entre sistemas e usuários.

Durante anos, diversas alternativas surgiram e, de uma forma geral, essas aplicações ficaram
conhecidas como APIs. Basicamente, o funcionamento dessas aplicações baseava-se em fornecer um
ponto de acesso entre a aplicação e seu cliente, seja ele um usuário ou uma outra aplicação.

O que é API?
O acrônimo API que provém do inglês Application Programming Interface (Em português, significa
Interface de Programação de Aplicações), trata-se de um conjunto de rotinas e padrões
estabelecidos e documentados por uma aplicação A, para que outras aplicações consigam utilizar as
funcionalidades desta aplicação A, sem precisar conhecer detalhes da implementação do software.

Desta forma, entendemos que as APIs permitem uma interoperabilidade entre aplicações. Em outras
palavras, a comunicação entre aplicações e entre os usuários.

Exemplo de API: Twitter Developers

2) Representações

Agora que já sabemos que uma API permite a interoperabilidade entre usuários e aplicações, isso
reforça ainda mais a importância de pensarmos em algo padronizado e, de preferência, de fácil
representação e compreensão por humanos e máquinas. Isso pode soar um pouco estranho, mas
veja esses três exemplos:

Representação XML

<endereco>

<rua>

Rua Recife

</rua>

<cidade>

Paulo Afonso

</cidade>
</endereco>

Representação JSON

{ endereco:

rua: Rua Recife,

cidade: Paulo Afonso

Representação YAML

endereco:

rua: rua Recife

cidade: Paulo Afonso

Qual deles você escolheria para informar o endereço em uma carta? Provavelmente o último, por ser
de fácil entendimento para humanos, não é mesmo? Contudo, as 3 representações são válidas, pois
nosso entendimento final é o mesmo, ou seja, a semântica é a mesma.
Por outro lado, você deve concordar comigo que a primeira representação (formato XML) é mais
verbosa, exigindo um esforço extra por parte de quem está escrevendo. No segundo exemplo
(formato JSON) já é algo mais leve de se escrever. Já o último (formato YAML), é praticamente como
escrevemos no dia a dia.

Sendo assim, esse é o primeiro passo que precisamos dar para permitir a comunicação interoperável.
E o mais legal é que essas 3 representações são válidas atualmente, ou seja, homens e máquinas
podem ler, escrever e entender esses formatos.

Origem do REST

O HTTP é o principal protocolo de comunicação para sistemas Web, existente há mais de 20 anos, e
em todo esse tempo sofreu algumas atualizações. Nos anos 2000, um dos principais autores do
protocolo HTTP, Roy Fielding, sugeriu, dentre outras coisas, o uso de novos métodos HTTP. Estes
métodos visavam resolver problemas relacionados a semântica quando requisições HTTP eram feitas.

Estas sugestões permitiram o uso do HTTP de uma forma muito mais próxima da nossa realidade,
dando sentido às requisições HTTP. Para melhor compreensão, veja os exemplos abaixo (requisições
em formatos fictícios):

GET http://www.meusite.com/usuarios

DELETE http://www.meusite.com/usuarios/jackson

POST http://www.meusite.com/usuarios –data {nome: joaquim}

Pela simples leitura (mesmo o método GET e DELETE sendo em inglês) é possível inferir que no
primeiro caso estamos pegando (GET) todos os usuários do site, ou seja, teremos uma lista de todos
os usuários que estão cadastrados no sistema/site. Já, no segundo caso, estamos apagando (DELETE)
o usuário Jackson. No último exemplo, estamos usando o método POST, em que percebemos o envio
de dados extras para cadastrar um novo usuário.

Veja o quão simples ficou expressar o que desejamos realizar ao acessar um determinado endereço,
usando verbos específicos para URLs específicas e usando dados padronizados, quando necessário.

Estes princípios apresentados fazem parte do REST! Em outras palavras, nesses exemplos, temos:
uma representação padronizada, verbos e métodos usados, bem como, URLs.

O que é REST?

REST significa Representational State Transfer. Em português, Transferência de Estado


Representacional. Trata-se de uma abstração da arquitetura da Web. Resumidamente, o REST
consiste em princípios/regras/constraints que, quando seguidas, permitem a criação de um projeto
com interfaces bem definidas. Desta forma, permitindo, por exemplo, que aplicações se
comuniquem.

E RESTful… qual a diferença?


Existe uma certa confusão quanto aos termos REST e RESTful. Entretanto, ambos representam os
mesmo princípios. A diferença é apenas gramatical. Em outras palavras, sistemas que utilizam os
princípios REST são chamados de RESTful.

REST: conjunto de princípios de arquitetura

RESTful: capacidade de determinado sistema aplicar os princípios de REST.

Como saber mais sobre o assunto?

Apesar de tudo que vimos, aprender e entender REST está muito além de saber apenas qual método
usar quando se faz uma determinada requisição. Na verdade, está muito mais ligado a dar semântica
às requisições realizadas ao servidor e isso aparentemente parece fácil, mas em um estudo um pouco
mais rebuscado, você perceberá que isso é só a ponta do iceberg.

Daí a pergunta que não se quer calar é… por onde começar?

A reposta é até simples. Conceitualmente você pode aprender tudo isso indo direto nas
documentações oficiais (RFC’s). Entretanto, isso pode demandar um bom tempo de aprendizado e é
por isso que resolvi fazer um curso que vai te dar esse atalho.

O curso foi desenvolvido para ajudar a todos que estão iniciando no mundo REST, dando uma visão
geral e também uma prática necessária ao conhecimento de aplicações REST. Se você se interessou,
é só clicar na imagem abaixo e aproveitar!

No mais, espero que você tenha gostado do post. Qualquer dúvida, elogio, sugestão ou crítica, fique
à vontade para comentar! Abraços e até a próxima.

354

SHARES

Escrito por Jackson Pires

Mais de 15 anos dedicados a Dev, 5 a ensinar. Acredito que programação não precisa ser complicado,
por isso, adotei o Ruby On Rails (RoR). Contudo, como todo bom Engenheiro de Software, tenho
especialização e adoração por diversas tecnologias do mercado. Hoje, dedico o meu tempo a ensinar
e compartilhar conhecimento em plataformas como a Becode. Ahh... também sou fotógrafo nas
horas vagas.

facebook

googleplus

linkedin

twitter

youtube
40 COMENTÁRIOS

LEAVE A REPLY

Guilherme Pacheco

há 3 anos

Gostei da explicação, achei sucinta, explicativa e bem elaborada. Parabéns ao autor! Quero continuar
a ver mais destes posts.

Responder

Erick Scudero

há 3 anos

Que ótimo, Guilherme! Ficamos felizes com isso. O Jackson (autor do post) é nosso instrutor na
Becode. Já assinou nossa newsletter para ver mais conteúdos como esse? Abraços!

Responder

Márcio Gomes de Assis

há 3 anos

Muito bom! enfim aprendi o que é o rest.

Responder

Jackson Pires

há 3 anos

Que legal, Márcio!

Muito bom saber que o artigo cumpriu com o propósito de esclarecer do que se trata a tecnologia.

Lembre-se que caso queira aprofundar-se temos um curso de REST aqui na Becode.

Um forte abraço!

Responder

Edson Morais

há 2 anos

Muito bom o artigo. Aborda o tema de uma maneira introdutória e fornece links para um
aprofundamento.
Estou entusiasmado com os artigos que tenho encontrado na “BeCode”. Já li bons artigos técnicos,
como este, mas também artigos de temas variados, como tendências de mercado, comportamento
de profissionais da área, dicas de tecnologia, etc. Enfim, tudo muito interessante…

Responder

Jackson Pires

há 2 anos

Fala, Edson! Que bom que gostou do artigo. A Becode tem se esforçado para trazer tudo de mais
novo que tem rolado na comunidade de desenvolvimento. Continue a acompanhar as publicações e
deixar seus comentários pois isso é o que nos incentiva. Um forte abraço! Vlw!

Responder

Mateus Santos

há 2 anos

Olá , fiquei com dúvida na seguinte questão : Falando de uma aplicação onde irei acessar um BD ,
também consigo “transformar” JSON para incorporar nas frases SQL ?

ps: para me situar estou desenvolvendo me TCC em cima dessa “metodologia” , assim preciso
entender em detalhes.

desde já grato.

Responder

Erick Scudero

há 2 anos

Mateus, tudo bem? Esse é um assunto mais complexo. Talvez no futuro a gente crie um post ou
tutorial especificamente sobre essa sua dúvida. Mas, se você quiser ir se adiantando, o instrutor
Jackson criou um curso bem completo que provavelmente irá te ensinar tudo que você precisa saber
para o seu TCC. Dê uma olhada no conteúdo do curso aqui:

– Entendendo e documentando REST / RESTful APIs

Abraços

Responder

Gabriel

há 2 anos

Excelente explicação!

Responder
Becode

há 2 anos

Valeu Gabriel. Parabéns, Jackson!

Responder

Ademar

há 2 anos

Parabéns pelo Post. Pela explicação, imagino que o curso seja bem didático. Abraços

Responder

Becode

há 2 anos

Muito! O Jackson é um dos melhores instrutores no assunto. Dê uma olhada nas aulas gratuitas para
ter uma prévia: Entendendo e documentando REST / RESTful APIs

Abraços!

Responder

Ricardo Hernandez

há 2 anos

OMG! onde posso aprender mais sobre o assunto!?

kkkkkkkkk

Que explicação maravilhosa! Meus parabens por isto! Finalmente posso dizer que estou com um
bom etendimento agora sobre API e REST. Agradeço de todo o coração.

Responder

Becode

há 2 anos

hahaha Ricardo, que bom que gostou! Mas então, no próprio post demos a dica do curso do Jackson
Pires, dê uma revisada no post que você vai achar o link. Abraços!

Responder

Cesar

há 2 anos
Excelente explicação: Utilizando linguagem e termos de fácil entendimento você conseguiu explicar
com perfeição e didática os conceitos de REST e API.

Responder

Becode

há 2 anos

Muito obrigado, Cesar!

Responder

Marco Aurelio

há 2 anos

gostaria de saber a data que foi publicado esse artigo por favor

Responder

Becode

há 2 anos

21/02/2017

Responder

Daniele

há 2 anos

Muito bacana e altamente esclarecedor o artigo.

Responder

Becode

há 2 anos

Ficamos feliz com o seu comentário, Daniele! ?

Responder

Andrey Aires

há um ano

Faltaram as aspas no JSON, para ser um código válido. Rsrs.

Responder

Everton
há um ano

muito bom e esclarecedor.

direto ao assunto para quem precisa iniciar o conhecimento.

Responder

Vandinei Santos

há um ano

Boa tarde, Prezados!

Gostaria de desenvolver um sistema em PHP ou Laravel, que utilizasse como chave de autenticação
usuários cadastrados no Outlook 365.

Qual é a tecnologia que devo utilizar para implementar essa funcionalidade?

Parabéns pelo artigo e pelos posts.

[]s

Responder

Gustavo

há 10 meses

Parabéns Jackson, explicou de forma rápida e direta pra quem pouco mexeu com este assunto !!!

Responder

Claudio

há 9 meses

Excelente explicação. Acho que entendi agora.

Então há 5 anos , quando eu na raça aprendi a programar em HTML Forms com PHP, ja usava na
action do Form o GET e o POST para chamar as funções no PHP.

Isso ja era REST então?

Responder

Alanne

há 8 meses

Provavelmente sim. Também gostaria de saber!

Responder
Gustavo

há 9 meses

Ótimas explicações. Parabéns!

Responder

Alanne

há 8 meses

Nem acredito que consegui entender o que seria o tal REST e RESTful.

Excelente!!!! Parabéns!!!!

Responder

Marlon

há 8 meses

Cara, muito obrigado pela explicação. Até que enfim, eu consegui entender.

Parabéns!!!!!!!!!

Responder

Bruno Sousa

há 7 meses

Ótima explicação! Parabéns.

Responder

George Mendonça

há 7 meses

Show! Parabéns!

Responder

Caio

há 7 meses

Excelente material, deixou muito claro.

Responder

Ariadna
há 6 meses

Uma aula simples e didática em formato de artigo. Um conteúdo claro e simples. Obrigada por isso,
Jackson! Parabéns! Um abraço

Responder

Hendrison Santos

há 6 meses

Jackson, meus parabéns!

Gostei muito. Simples e prático.

Estou precisando conhecer WebServices. Sem tem alguma relação com REST. Vocês tem algum curso
sobre o assunto?

Responder

Gabriel

há 5 meses

Cara, sensacional!

Didática única

Responder

Milson

há 5 meses

Muito bem explicado, meus sinceros agradecimentos amigo.

Responder

Clério Hickmann

há 5 meses

Gostei da tua linguagem, simples!

Responder

Elaine Carvalho

há 4 meses

Adorei o artigo. Explicação clara e concisa. Parabéns!!!

Responder
Isac

há 4 meses

Muito bom Jackson Pires! Só estou aguardando a Udemy entrar com uma promoção para eu poder
comprar seu curso.

Responder

DEIXE UMA RESPOSTA

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

VEJA MAIS BACK-END

298 Shares3.4k Visualizações

10

Back-end Front-end

E se as seleções da Copa do Mundo fossem editores de texto e IDEs?

por

Danilo Soareshá 2 anos

241 Shares26k Visualizações

Back-end Front-end

Os 6 frameworks e bibliotecas JavaScript que você deveria conhecer!

por

Danilo Soareshá 2 anos

172 Shares2.5k Visualizações

Back-end

TDD para newbies: o que é TDD e como aproveitar a técnica

por

Jackson Pireshá 2 anos


131 Shares2.8k Visualizações

Back-end Front-end

WTF is TypeScript + 6 aplicações extraordinárias da linguagem!

por

Leonello de Leonehá 2 anos

162 Shares2.6k Visualizações

Back-end

TOP 10 Ruby Gems para ganhar (muita!) produtividade com Rails

por

Jackson Pireshá 2 anos

176 Shares19.2k Visualizações

14

Back-end

6 frameworks PHP que você precisa conhecer!

por

Leonello de Leonehá 2 anos

O QUE VOCÊ PROCURA?

MAIS LIDOS DO DIA

550 Shares123k Visualizações

Os 5 principais cursos superiores de TI e suas diferenças!

As 15 principais linguagens de programação do mundo!

(Plano de Estudos) O Guia do Programador Iniciante!

O que é API? REST e RESTful? Conheça as definições e diferenças!

Os 6 frameworks front-end mais amados no mundo (segundo o GitHub)

SIGA A BECODE

facebook
twitter

linkedin

youtube

facebook

twitter

linkedin

youtube

SOBRE A BECODE

Nascemos para ser a sua fonte descomplicada de informações e aprendizado em programação e


desenvolvimento.

Por isso, aqui você encontra diversos materiais gratuitos, ebooks, posts, quizes, além de
recomendações para os melhores cursos online da web. Esperamos que você goste!

facebook

twitter

linkedin

youtube

BECODE NO FACEBOOK

O QUE VOCÊ PROCURA?

CURSOS E TECNOLOGIAS

Algoritmos

Android

BootStrap

CSSECMAScript

HTML

iOS

JavaJavaScriptjQuery

Linux

MySQLPHPPythonR
REST

Ruby on Rails

ScrumSQL

Swift

© Todos os direitos reservados a Becode.

Site Antigo

Página Inicial

ÚLTIMOS POSTS HALL OF FAME

Site AntigoPágina Inicial

ÚLTIMOS POSTS HALL OF FAME

CURSOSPrimeiros PassosBack-endFront-endMobileBanco de DadosInfraestrutura e SistemasGestão e


NegóciosCarreiraEBOOKS E FREEBIESQUIZZES

Você também pode gostar