API em ruby ~ Parte 1
No time em que trabalho aqui na Bionexo, estamos criando uma nova API para os nossos clientes, dentro desse clima e contexto decidi escrever esse post para explicar passo a passo como construir uma simples API em ruby.
De acordo com o guia oficial do rails, para criar uma API nós precisamos passar a opção — api quando estiver criando o projeto, dessa forma vamos criar um projeto com configurações mais enxutas, conforme o comando abaixo:
#criando o projeto
$ rails new basic-api --api#acesse o projeto
$ cd basic-api
O primeiro comando cria o projeto em rails, o segundo acessa o projeto que acabamos de criar.
Agora vamos criar uma entidade para manipular os dados.
$ rails g model Post title:string body:string$ rails db:migrate
Na primeira linha estamos criando a entidade Post com os campos title(título) e body(corpo) e depois executando o comando para criar a tabela no banco de dados.
Na model, vamos criar uma validação para futuramente testar as rotas da API.
class Post < ApplicationRecord
validates :title, presence: true
end
Agora abra o arquivo db/seeds.rb e vamos atualizar para gerar uma pequena massa de dados.
(1..10).each do |count|
Post.create(title: "titulo #{count}", body: "conteudo")
puts "Post #{count} created!"
end
Agora vamos executar o comando abaixo, para executar as informações do nosso seeds.
$ rails db:seed
Crie o arquivo app/controllers/api/v1/posts_controller.rb. E agora vamos criar o primeiro método.
module Api
module V1
class PostsController < ApplicationController
def index
posts = Post.all.order('created_at desc')
render json: { data: posts }, status: :ok
end
end
end
end
Vamos configurar as rotas de acesso a nossa API, abra o arquivo config/routes.rb e altere conforme abaixo:
Rails.application.routes.draw do
namespace 'api' do
namespace 'v1' do
resources :posts
end
end
end
Agora vamos utilizar o comando que inicia a nossa API.
$ rails s
Vamos usar o postman para validar os fluxos. O postman é uma ferramenta para analisar/testar API's rest. Ele oferece uma simples interface para realizar requests, sem precisar escrever muito código apenas para testar as funcionalidades de sua API. Abra o postman e configure conforme imagem abaixo:
Ao clicar em Send, deverá retornar os dados que criamos, veja:
Caso você queria testar a validação que incluímos na model Post, basta criar o método create e testar, o resultado será algo assim:
Agora informando o title no json, o registro é criado, veja:
Se você quiser rodar na sua maquina, o código está disponível neste repositório.
Espero que vocês tenham uma noção inicial de como começar a construir um API com rails. Se quiser seguir o passo a passo e depois comentar se deu tudo certo ou se você fez algo diferente, ficarei muito feliz. :)
Para ficar com músculos fortes devemos nos exercitar, mantendo uma rotina de treino os músculos vão crescer e se desenvolver. Aprender a programar é o mesmo processo, quanto mais tempo você gastar codando, o mais competente você vai se tornar. Você colhe o que você plantar.