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:

 

 


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



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/




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 também JavaScript.
Além disso, aqui sempre levamos à você conteúdos valiosos sobre a carreira de programação, dicas sobre currículos, portfólios, perfil profissional, soft skills, enfim, tudo o que você precisa saber para continuar evoluindo como Programador(a)!

Fique por dentro de todos os conteúdos o/

 

Nossas redes sociais:

📹 • https://youtube.com/Onebitcode [Live todas as terças-feiras às 19h)
💻 • https://linkedin.com/company/onebitcode
🙂 • https://facebook.com/onebitcode
 📱  • https://instagram.com/one_bit_code
🐦 • https://twitter.com/onebitcode

 

Nossos cursos:

🥇 • Programador Full Stack Javascript em 8 Semanas
💎 • Curso Completo de Ruby
 ⚙  • Minicurso: API Rails 5 Completo
🐞 • Minicurso de Testes para Ruby on Rails com RSpec

 

Espero que curta nossos conteúdos e sempre que precisar de ajuda, fala com a gente!
E
stamos aqui para você 🙂

Bem-vindo à família OneBitCode o/

5 2 votes
Article Rating
janeiro 17, 2020
Subscribe
Notify of
guest
24 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Edson Lima
3 anos atrás

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
Fernando Alves
2 anos atrás

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
Fernando Alves
2 anos atrás

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

Abraço.

jmcabanga
2 anos atrás

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
2 anos atrás

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
2 anos atrás

De nada mano, gosto dos seus tutoriais!!

Axel
2 anos atrás

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
Carlos Fagiani Junior
2 anos atrás

Muito bem explicado, parabéns,

Vai ter uma parte de login na API?

KEVIN COSTA MARTINS
2 anos atrás

também gostaria foi uma parte que fiquei em duvida

Hildebrando Segundo
Hildebrando Segundo
2 anos atrás

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

Edson
1 ano atrás

Tem algum tutorial no OneBitCode, que mostre como integrar essa a API nesse tutorial com algum frontend?

Edson
1 ano atrás

Tem algum tutorial no OneBitCode, mostrando como integrar essa API com um Frontend?

Edson
1 ano atrás

Teria algum artigo mostrando com integrar essa api com o Front?

Dieterich
Dieterich
1 ano atrás

Muito Bom!

Ezequiel
Ezequiel
1 ano atrás

quando faço requisição de todos os contatos, o retorno e isso, alguem sabe pq o metodo n ta definido?

NoMethodError (undefined method `contacts’ for #):

Alessandro Moreira
1 ano atrás

Sobre o versionamento, teremos por exemplo 10,20,30 pastas V30 para cada versão, duplicando pastas, codigo, o arquivo de routes vai ficar gordo. É assim mesmo ?

Bruno
6 meses atrás

Olá, primeiramente ótimo artigo!

Estou tendo esse problema ao seguir os passos do postman na aula 3, já criei o emal, senha e recebi o token, adicionei nos headers mas continuo com o problema(Já estava acontecendo antes msm de adicionar o emal e token nos headers).

ActionController::RoutingError (undefined method ` before_action’ for Api::V1::ContactsController:Class
Did you mean? before_action):

Feito com s2 por OneBitCode
24
0
Would love your thoughts, please comment.x
()
x
%d blogueiros gostam disto: