sinatra-ace¶ ↑
Summary¶ ↑
Sinatra
Extension for ACE (AWS Compatible Environment).
Features¶ ↑
-
Friendly DSL (action, version, path)
-
Specialized Helpers
Sample¶ ↑
Run this app:
require 'sinatra' require 'sinatra/ace.rb' require 'sequel' DB = Sequel.sqlite DB.create_table :dreams do primary_key :id String :name String :description end Dreams = DB[:dreams] action 'CreateDream' do dream_id = Dreams.insert(:name => params['DreamName']) response_xml do |xml| xml.Dream do xml.DreamId dream_id xml.DreamName params['DreamName'] end end end version '2014-07-11' do action 'CreateDream' do dream_id = Dreams.insert(:name => params['DreamName'], :description => params['Description']) response_xml do |xml| xml.Dream do xml.DreamId dream_id xml.DreamName params['DreamName'] xml.Description params['Description'] end end end end path '/:DreamId' do action 'GetDreamDetail' do dream = Dreams[:id => params['DreamId']] response_xml do |xml| xml.Dream do xml.DreamId dream[:id] xml.DreamName dream[:name] xml.Description dream[:description] end end end end dispatch!
And you can get:
$ curl "http://localhost:4567/?Action=CreateDream&DreamName=Nightmare" <?xml version="1.0" encoding="UTF-8"?> <CreateDreamResponse> <CreateDreamResult> <Dream> <DreamId>2</DreamId> <DreamName>Nightmare</DreamName> </Dream> </CreateDreamResult> <ResponseMetadata> <RequestId>6c68b49d-239a-4777-b82f-a21151e9be42</RequestId> </ResponseMetadata> </CreateDreamResponse> $ curl "http://localhost:4567/?Action=CreateDream&DreamName=DayDream&Description=just+lazed+in+the+pool&Version=2014-07-11" <?xml version="1.0" encoding="UTF-8"?> <CreateDreamResponse> <CreateDreamResult> <Dream> <DreamId>3</DreamId> <DreamName>DayDream</DreamName> <Description>just lazed in the pool</Description> </Dream> </CreateDreamResult> <ResponseMetadata> <RequestId>2b875603-f685-4872-a316-7e2ddd4c356d</RequestId> </ResponseMetadata> </CreateDreamResponse> $ curl "http://localhost:4567/3?Action=GetDreamDetail" <?xml version="1.0" encoding="UTF-8"?> <GetDreamDetailResponse> <GetDreamDetailResult> <Dream> <DreamId>3</DreamId> <DreamName>DayDream</DreamName> <Description>just lazed in the pool</Description> </Dream> </GetDreamDetailResult> <ResponseMetadata> <RequestId>225697f4-2577-432b-aa78-c6f18cec7c05</RequestId> </ResponseMetadata> </GetDreamDetailResponse>