📄 17 - exposing web services on your website.rb
字号:
./script/generate web_service Item add edit fetch create app/apis/ exists app/controllers/ exists test/functional/ create app/apis/item_api.rb create app/controllers/item_controller.rb create test/functional/item_api_test.rb#---class ItemApi < ActionWebService::API::Base api_method :add, :expects => [:string, :string], :returns => [:int] api_method :edit, :expects => [:int, :string, :string], :returns => [:bool] api_method :fetch, :expects => [:int], :returns => [Item]end#---class ItemController < ApplicationController wsdl_service_name 'Item' def add(name, value) Item.create(:name => name, :value => value).id end def edit(id, name, value) Item.find(id).update_attributes(:name => name, :value => value) end def fetch(id) Item.find(id) endend#---require 'soap/wsdlDriver'wsdl = "http://localhost:3000/item/service.wsdl"item_server = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driveritem_id = item_server.add('foo', 'bar')if item_server.edit(item_id, 'John', 'Doe') puts 'Hey, it worked!'else puts 'Back to the drawing board...'end# Hey, it worked!item = item_server.fetch(item_id)item.class # => SOAP::Mapping::Objectitem.name # => "John"item.value # => "Doe"#---require 'xmlrpc/client'item_server = XMLRPC::Client.new2('http://localhost:3000/item/api')item_id = item_server.call('Add', 'foo', "bar")if item_server.call('Edit', item_id, 'John', 'Doe') puts 'Hey, it worked!'else puts 'Back to the drawing board...'end# Hey, it worked!item = item_server.call('Fetch', item_id)# => {"name"=>"John", "id"=>2, "value"=>"Doe"}item.class # => Hash#---
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -