A Small Rails Talk

now Antes de continuar es importante que se tenga conocimiento de lo que son las API y SOA Service Oriented Architectura

Primero :¿Que es un APi?

un API por sus siglas en ingles Aplication Programming Interface

SOA: Arquitectura basada en servicios

SOA es una metodo de diseño de arquitectura de software

Las API’S La interfaz de programación de aplicaciones, abreviada como API del inglés: Application Programming Interface, es un conjunto de subrutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.

Comencemos:

para iniciar lo primero que tenemos que hacer es asegurarnos de que todo este instalado y listo esto no es para principiantes en el ambiente rails si es su caso primero visiten instalacion aqui enlaces para cada plataforma:

###WINDOWS: hay 2 rutas la mas facil y rapida es con RailsInstaller Pero en lo personal no me agrada. La segunda es Vagrant el cual te permite manejar maquinas virtuales de manera rapida y sencilla apate de combinarlo con Chef para la preinstalacion de todos los componentes. Vagrant es increible permite tener todas las bondades de linux en windows y con un consumo minimo de recursos Definitivamente lo recomiendo para los que deseen utilizar windows

Linux:

Recomiendo seguir esta Guia por Go Rails explica exelente el proceso OJO hay que leer a detalle

A lo que truje chencha

para iniciar la aplicacion en modo API es necesario correr el siguiente comando

rails new api_app_name --api

nos movemos al directorio que creamos

 cd nombre_del_api
 bundle install
 bin/rake db:setup

#Ahora a hablar de configuramos CORS Cross-Origin Http Request es un estandar que permite realizar request desde varios origenes http para leer mas del tema aqui un enlace de mozilla CORS

en esta ocacion veremos Cors en rails y se relizara por la gema rack-cors paraq usarla hay que abilitarla en el Gemfile

# Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible
gem 'rack-cors'

ahora ingresamos Bundle install

bundle install

ahora nos moveremos a el archivo de configuración config/initializers/cors.rb una vez dento veran todo comentado este archivo hay que editarlo pueden usar las configuraciones que estan en RackCors Github

la mia se ve como la siguiente


Rails.application.config.middleware.insert_before 0, Rack::Cors do
  allow do
    origins 'example.com'

    resource '*',
      headers: :any,
      methods: [:get, :post, :put, :patch, :delete, :options, :head]
  end
end

nota CORS Es recomendado por la W3C

#Serializacion utilizaremos una gema para serializar active_model_serializers para mas informacion blog serializer agregamos al Gemfile

gem 'active_model_serializers', '~> 0.10.0'

y corremos bundle


bundle install

creamos el archivo config/initializers/active_model_serializers.rb y escribymos lo siguiente

ActiveModel::Serializer.config.adapter = :json_api

#Versionar Veremos Como versionar las api en ruby se pueden usar gemas pero en este caso les dire como hacerlo desde cero.

Despues configuramos RSPEC para el Testeo con: Rspec en nuesto gemfile en la secion de desarrollo y testeo se agrega rspec-rails

group :development, :test do

  # Use RSpec for specs
  gem 'rspec-rails', '>= 3.5.0'

  # Use Factory Girl for generating random test data
  gem 'factory_girl_rails'
end

actualizamos bundle

y correomos el instalador

rails g rspec:install

Escrito en May 17, 2018