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