×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Rails API ruby meetup 29 apr 2014
Slide 2
Slide 2 text
api only version json cors auth mock server testing
Slide 3
Slide 3 text
backend frontend logic view rails angular puma nginx localhost:3000 localhost:8888 domainapi.com domain.com
Slide 4
Slide 4 text
api only
Slide 5
Slide 5 text
api only simpler Gemfile remove /app/views folder
Slide 6
Slide 6 text
api only /app/controllers/application_controller.rb
Slide 7
Slide 7 text
api only /app/controllers/pages_controller.rb /config/routes.rb
Slide 8
Slide 8 text
api only demo git checkout step1
Slide 9
Slide 9 text
version
Slide 10
Slide 10 text
version /app/controllers/api/v1/api_controller.rb /app/controllers/api/v1/meetups_controller.rb
Slide 11
Slide 11 text
version /config/routes.rb $ rails g model Meetup name:string event:datetime $ rake db:migrate $ rails c > Meetup.create(name: 'April meetup', event: Time.now)
Slide 12
Slide 12 text
version demo git checkout step2
Slide 13
Slide 13 text
json gem ‘active_model_serializers' rails g serializer meetup
Slide 14
Slide 14 text
json /app/serializers/meetup_serializer.rb
Slide 15
Slide 15 text
json /app/controllers/api/v1/meetups_controller.rb
Slide 16
Slide 16 text
json demo git checkout step3
Slide 17
Slide 17 text
cors
Slide 18
Slide 18 text
cors frontend markup to display data
Slide 19
Slide 19 text
cors frontend script to query api
Slide 20
Slide 20 text
cors gem ‘rack-cors'
Slide 21
Slide 21 text
cors /config/application.rb
Slide 22
Slide 22 text
auth
Slide 23
Slide 23 text
auth /db/migrate/xxx_add_auth_token_to_users.rb /app/models/user.rb
Slide 24
Slide 24 text
auth /app/controllers/registrations_controller.rb backend - token sent as part of headers
Slide 25
Slide 25 text
auth javascript frontend - token received and stored
Slide 26
Slide 26 text
auth demo token stored in local storage
Slide 27
Slide 27 text
auth /app/controllers/api/v1/meetups_controller.rb check token before every api request
Slide 28
Slide 28 text
auth /app/controllers/api/v1/api_controller.rb
Slide 29
Slide 29 text
auth demo git checkout step5
Slide 30
Slide 30 text
mock server
Slide 31
Slide 31 text
mock server /mock_server/server.rb with sinatra - start a mock server
Slide 32
Slide 32 text
mock server /config/secrets.yml /app/controllers/api/v1/questions_controller.rb using mock server in test & dev environments
Slide 33
Slide 33 text
mock server demo git checkout step6
Slide 34
Slide 34 text
testing
Slide 35
Slide 35 text
testing /spec/controllers/meetups_controller_spec.rb test for json response
Slide 36
Slide 36 text
testing demo git checkout step7
Slide 37
Slide 37 text
other resources demo code: github.com/ sayanee/talks/013-rails-api