Menu Docs
Página inicial do Docs
/ / /
Mongoid
/

Introdução (Sinatra)

Nesta página

  • Novo aplicativo
  • Criar repositório Git
  • Criar arquivo Gem
  • Instalar dependências
  • Execute o MongoDB localmente
  • Usar o MongoDB Atlas
  • Aplicativo básico
  • Executar aplicativo
  • Aplicativo existente

Esta seção mostra como criar um novo aplicativo Sinatra usando o Mongoid para acesso a dados. O processo é semelhante para outros aplicativos Ruby que não usam Ruby on Rails.

O código fonte completo deste aplicativo está disponível no Github repositório mongoid-demo do.

Embora não seja necessário, recomendamos criar um repositório Git para seu aplicativo:

git init blog
cd blog

Confirme suas alterações conforme segue este tutorial.

Crie um arquivo denominado Gemfile com o seguinte conteúdo:

source 'https://rubygems.org'
gem 'sinatra'
gem 'mongoid'
gem 'puma'

Execute os seguintes comandos para instalar as dependências:

gem install bundler
bundle install

Este comando gerará um arquivo chamado Gemfile.lock , que recomendamos confirmar em seu repositório Git.

Para desenvolver localmente com o MongoDB, baixe e instale o MongoDB.

Após o MongoDB estar instalado e em execução, crie um arquivo denominado config/mongoid.yml apontando para sua implantação. Por exemplo, se você lançasse um mongod standalone na porta padrão, o seguinte conteúdo seria apropriado:

development:
clients:
default:
database: blog_development
hosts:
- localhost:27017
options:
server_selection_timeout: 1

Em vez de baixar, instalar e executar o MongoDB localmente, você pode criar uma conta gratuita do MongoDB Atlas e criar um cluster MongoDB gratuito no Atlas. Após a criação do cluster, siga as instruções em conectar à página do cluster para obter o URI. Use o driver Ruby 2.5 ou o formato posterior .

Crie um arquivo denominado config/mongoid.yml com o seguinte conteúdo, substituindo o URI pelo URI real para seu cluster:

development:
clients:
default:
uri: mongodb+srv://user:pass@yourcluster.mongodb.net/blog_development?retryWrites=true&w=majority
options:
server_selection_timeout: 5

Crie um arquivo denominado app.rb com o seguinte conteúdo. Primeiro, alguns exigem:

require 'sinatra'
require 'mongoid'

Carregue o arquivo de configuração Mongoid e configure o Mongoid. Isso é feito automaticamente quando o Mongoid é usado com Rails, mas como estamos usando o Mongoid com Sinatra, precisamos fazer isso nós mesmos:

Mongoid.load!(File.join(File.dirname(__FILE__), 'config', 'mongoid.yml'))

Agora podemos definir alguns modelos:

class Post
include Mongoid::Document
field :title, type: String
field :body, type: String
has_many :comments
end
class Comment
include Mongoid::Document
field :name, type: String
field :message, type: String
belongs_to :post
end

... e adicione algumas rotas:

get '/posts' do
Post.all.to_json
end
post '/posts' do
post = Post.create!(params[:post])
post.to_json
end
get '/posts/:post_id' do |post_id|
post = Post.find(post_id)
post.attributes.merge(
comments: post.comments,
).to_json
end
post '/posts/:post_id/comments' do |post_id|
post = Post.find(post_id)
comment = post.comments.create!(params[:comment])
{}.to_json
end

Inicie o aplicação:

bundle exec ruby app.rb

Experimente algumas solicitações via curl:

curl http://localhost:4567/posts
# => []
curl -d 'post[title]=hello&post[body]=hello+world' http://localhost:4567/posts
# => {"_id":{"$oid":"5d8151ec96fb4f0ed5a7a03f"},"body":"hello world","title":"hello"}
curl http://localhost:4567/posts
# => [{"_id":{"_id":{"$oid":"5d8151ec96fb4f0ed5a7a03f"},"body":"hello world","title":"hello"}]
curl -d 'comment[name]=David&comment[message]=I+like' http://localhost:4567/posts/5d8151ec96fb4f0ed5a7a03f/comments
# => {}
curl http://localhost:4567/posts/5d8151ec96fb4f0ed5a7a03f
# => {"_id":{"$oid":"5d8151ec96fb4f0ed5a7a03f"},"title":"hello","body":"hello world","comments":[{"_id":{"$oid":"5d8157ac96fb4f20c5e45c4d"},"message":"I like","name":"David","post_id":{"$oid":"5d8151ec96fb4f0ed5a7a03f"}}]}

Para começar a usar o Mongoid em um aplicativo Sinatra existente, as etapas são essencialmente as mesmas que as fornecidas acima para um novo aplicativo:

  1. Adicione a dependência mongoid ao Gemfile.

  2. Crie um arquivo de configuração mongoid.yml .

  3. Carregue o arquivo de configuração e configure o Mongoid no aplicação.

  4. Definir modelos Mongoid.

Voltar

Tutorials