⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 17 - exposing web services on your website.rb

📁 O Reilly Ruby Cookbook source code
💻 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 + -