Domain Modeling with REST

39
Domain Modeling with REST

description

Preview talk for Railsconf 2008 session

Transcript of Domain Modeling with REST

Page 1: Domain Modeling with REST

Domain Modeling with REST

Page 2: Domain Modeling with REST

Audience Participation!who is using rest?

Page 3: Domain Modeling with REST

What is REST?

Page 4: Domain Modeling with REST

Resources

Page 5: Domain Modeling with REST

Addressability

Page 6: Domain Modeling with REST

Representations

Page 7: Domain Modeling with REST

Hypermedia

Page 8: Domain Modeling with REST

Stateless*

Page 9: Domain Modeling with REST

Audience Participation!why care?

Page 10: Domain Modeling with REST

Process

Page 11: Domain Modeling with REST

Domain

Page 12: Domain Modeling with REST

Sorted & Organized - Modeled

Page 13: Domain Modeling with REST

?

Page 14: Domain Modeling with REST

IdentifyResources

Page 15: Domain Modeling with REST

DetermineAvailable Methods

Page 16: Domain Modeling with REST

RespectMan in the Middle

Page 17: Domain Modeling with REST

Simple

Page 18: Domain Modeling with REST

My Pull List

Page 19: Domain Modeling with REST

Releases

Page 20: Domain Modeling with REST

Issues

Page 21: Domain Modeling with REST

Series

Page 22: Domain Modeling with REST

Users

Page 23: Domain Modeling with REST

Lists

Page 24: Domain Modeling with REST

Advanced

Page 25: Domain Modeling with REST

Login*

Page 26: Domain Modeling with REST

Homepage

Page 27: Domain Modeling with REST

Dashboard

Page 28: Domain Modeling with REST

Preview

Page 29: Domain Modeling with REST

Search

Page 30: Domain Modeling with REST

Complex Forms

Page 31: Domain Modeling with REST

Collections

Page 32: Domain Modeling with REST

Administration

this slide left intentionally blank

Page 33: Domain Modeling with REST

Audience Participation!hardest problem you’ve seen?

Page 34: Domain Modeling with REST

Rails, Specifically

Page 35: Domain Modeling with REST

ActionController::Routing::Routes.draw do |map| map.resources :users # Install the default route as the lowest priority. map.connect ':controller/:action/:id' end

Default Routing

Page 36: Domain Modeling with REST

<%= link_to 'Delete', record, :method => 'delete', :confirm => 'Are you sure?' %>

Accessibility

<a href="/records/1" onclick="if (confirm('Are you sure?')) { var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href;var m = document.createElement('input'); m.setAttribute('type', 'hidden'); m.setAttribute('name', '_method'); m.setAttribute('value', 'delete'); f.appendChild(m);f.submit(); };return false;">Delete</a>

Page 37: Domain Modeling with REST

class RecordsController < ApplicationController # GET /records # GET /records.xml def index end

# GET /records/1 # GET /records/1.xml def show end

# ...end

Collections

Page 38: Domain Modeling with REST

Audience Participation!where’s rails bitten you?