API Ruby On Rails 5: Aprenda a criar facilmente

E ai programador(a), você sabe como criar uma API Ruby on Rails rapidamente?

API’s são maneiras de conectar serviços, com elas é possível se conectar ao Google para traduzir uma frase ou ao Watson da IBM para realizar um processamento de linguagem natural.

Saber como criar e consumir API’s é fundamental para qualquer programador, então nessa pequena série com 3 vídeos nós vamos ver o que é essencial para criar uma usando Ruby On Rails.

O que vamos utilizar

 

 

Planejando nossa API


Preparando a base da API

Gerando nosso Projeto       

1 – Rode no console

*Se quiser utilizar o PostgreSQL adicione ao comando:

Versionando a API            

1 – Dentro da pasta controllers crie uma pasta chamada api

2 – Dentro da pasta criada crie uma nova pasta chamada v1

3 – Dentro da pasta criada crie um arquivo chamado api_controller.rb e coloque nele:

Habilitando o CORS          

Acrescente no seu Gemfile:

Instale a gem rodando:

Acrescente no seu config/application.rb:

Configurando o Rack Attack

Acrescente no seu Gemfile:

Instale a Gem:

Acrescente em config/application:

Crie um arquivo chamado rack_attack.rb no seu config/initializers/ e coloque nele:

Instalando o Devise

Acrescente no seu Gemfile:

Instale rodando:

Em config/environments/development.rb coloque:

Rode no console:

Rode no console:

Gere as migrations:


Devise Simple Token      

Adicione ao seu Gemfile:

Instale rodando:

Adicione ao seu User Model:

Rode no console:

Coloque no seu controler api/v1/api_controller.rb:



12 formas de vencer o bloqueio criativo e escrever textos memoráveis (e 6 dicas extras)

Não perca nenhum conteúdo

Receba nosso resumo semanal com os novos posts, cursos, talks e vagas \o/




Desenvolvendo e testando nossa API

Gerando nossos Models       

Rode no console:

Adicione ao seu Model Contact:

Adicione ao seu Model User:


Gerando nossos Controllers     

Rode no console:

Coloque no controller gerado:

Ajustando as Rotas    

Atualize o seu arquivo routes.rb colocando:

Testando nossos endpoints     

Teste usando Postman ou CURL como no vídeo

Desafios

1 – Paginar os retornos do endpoint /contacts

2 – Criar a estrutura para permitir a inclusão de multiplos endereços nos Contatos


Link para o Gihtub: https://github.com/leonardoscorza/api-completa-rails

 

Gostou de aprender a criar uma API Ruby On Rails do zero? Comenta aí em baixo para eu saber. 🙂

Obrigado pela sua presença,
Grande abraço!

Leonardo Scorza


Você é novo por aqui?

Primeira vez no OneBitCode? Curtiu esse conteúdo? O OneBitCode tem muito mais para você!

O OneBitCode traz conteúdos de qualidade e em português sobre programação com foco em Ruby on Rails e outras tecnologias como Angular, Ionic, React, desenvolvimento de Chatbots e etc.

Se você deseja aprender mais, de uma forma natural e dentro de uma comunidade ativa, visite nosso Facebook e nosso Twitter, veja os screencasts e talks no Youtube, alguns acontecimentos no Instagram, ouça os Podcasts e faça parte de nossa Newsletter.

Além disso, também estamos com alguns e-Books muito interessantes para quem deseja se aprimorar como programador e também como freelancer (os e-Books são gratuitos!):

Espero que curta nossos conteúdos e sempre que precisar de ajuda com os tutoriais, fala com a gente! Seja por Facebook ou e-mail, estamos aqui para você 🙂

Bem-vindo à família OneBitCode \o/

abril 3, 2018

15
Deixe um comentário

avatar
8 Comment threads
7 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
9 Comment authors
Hildebrando SegundoKEVIN COSTA MARTINSCarlos Fagiani JuniorLeonardo ScorzaAxel Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
Edson Lima
Visitante

Olá, ótimo artigo.

Mesmo copiando e colando, estou recebendo este erro:

edsonlima@MacPro.local:~/projetos/rails/OneBitContacts$rails generate devise:install
/Users/edsonlima/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load’: /Users/edsonlima/projetos/rails/OneBitContacts/config/initializers/rack_attack.rb:33: syntax error, unexpected end-of-input, expecting keyword_end (SyntaxError)

Fernando Alves
Visitante
Fernando Alves

Boa tarde, Artigo excelente, vi que no final do video 2, voce faz um teste criando um usuario pelo rails c, mas quando faço o mesmo teste ele parece não estar ligado a base de dados, que no meu caso deixei o padrão sqlLite, porem eu dou um create e ele me retorna o que enviei como parametro e os outros campos do User com nil, mas não grava e nem gera o created_at e nem o autenticate. Uma coisa que notei é que quando voce da o rails c, aparece um numero como prefixo, e o meu esta aparecendo… Read more »

Fernando Alves
Visitante
Fernando Alves

Achei o problema, era o banco de dados do sqlite que estava errado no database.yml. Tudo certo

Abraço.

jmcabanga
Visitante

Cara estava a seguir o tutorial e ao fazer o teste esta a me retornar isso
“status”: 404,
“error”: “Not Found”,
“exception”: “#”,

o get que estou a testar com ele é “http://localhost:3000/api/v1/contacts.json”

guilhermereisdeveloper
Visitante

Bom dia Leonardo Scorza, no seu ultimo exemplo das “Routes” você esqueceu de colocar o devise, eu olhei o seu código no github, e la na sua “Routes” tinha o “devise_for :users” e no tutorial aqui você não colocou, acho que a galera deve ter ficado meio perdida com os erros. Gostei do seu tutorial apesas de sofrer um pouco kkk. vlw abraços!!

guilhermereisdeveloper
Visitante

De nada mano, gosto dos seus tutoriais!!

Axel
Membro

Bacana dms, ótimo artigo. Só estou tendo um problema tentei fazer usando um nome de model diferente de contact, e não estou conseguindo.

Carlos Fagiani Junior
Visitante
Carlos Fagiani Junior

Muito bem explicado, parabéns,

Vai ter uma parte de login na API?

KEVIN COSTA MARTINS
Membro
KEVIN COSTA MARTINS

também gostaria foi uma parte que fiquei em duvida

Hildebrando Segundo
Visitante
Hildebrando Segundo

Também fiquei em duvida em relação a isso, principalmente em delimitar o tempo do token.

Feito com s2 por OneBitCode
%d blogueiros gostam disto: