Ruby Web 是一种基于 Ruby 语言的 Web 开发框架,它可以帮助开发者快速构建出功能强大的 Web 应用。Ruby Web 框架有很多,其中最流行的是 Ruby on Rails(简称 Rails)。Rails 是一个开放源代码的 Web 开发框架,它使用 MVC 模式来帮助开发者快速创建出功能丰富的 Web 应用。
Rails 的 MVC 模式将应用分成三个部分:Model、View 和 Controller。Model 负责处理数据库相关的事情,View 负责显示页面内容,Controller 负责处理用户请求并将数据传递给 View 以显示页面内容。这样一来,开发者就不必在各个部分之间来回传递数据了,而是将数据传递给 Controller ,Controller 在处理完请求后将数据传递给 View 以显示页面内容。
Rails 还有很多其他特性,例如 Active Record、Action Pack、Active Support 等。Active Record 是一个对象关系映射工具,它可以帮助开发者在不同数据库之间进行数据迁移和存储。Action Pack 是一个 HTTP 处理工具集合,它包含了 Action Controller、Action View 等工具来处理 HTTP 请求和响应。Active Support 是一个标准库集合,包含了时间、日期、文件操作、字符串处理、XML 处理等功能。
# 使用 Rails 的 MVC 架构来创建一个 web 应用 $ rails new myapp -d mysql # 使用 mysql 作为数据库 $ cd myapp # 进入 myapp 目录 $ rails generate model user name:string email:string # 生成 user model $ rake db:migrate # 迁移数据库表格 $ rails generate controller users index show new edit # 生成 users controller 以及相应的 action $ vim app/views/users/index.html.erb # 编辑 index 页面内容
简单对象访问协议(SOAP,全写为Simple Object Access Protocol)是交换数据的一种协议规范。
SOAP 是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。
简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
更多 SOAP 教程请查看://www..cn/soap/soap-intro.html。
SOAP4R 由Hiroshi Nakamura开发实现,用于 Ruby 的 SOAP 应用。
SOAP4R 下载地址:http://raa.ruby-lang.org/soap4r/。
注意:你的ruby环境可能已经安装了该该组件。
Linux 环境下你也可以使用 gem 来安装该组件,命令如下:
$ gem install soap4r --include-dependencies
如果你是window环境下开发,你需要下载zip压缩文件,并通过执行 install.rb 来安装。
SOAP4R 支持两种不同的服务类型:
本教程将为大家介绍如何建立独立的 SOAP 服务。步骤如下:
为了实现自己的独立的服务器,你需要编写一个新的类,该类为 SOAP::RPC::StandaloneServer 的子类:
class MyServer < SOAP::RPC::StandaloneServer ............... end
注意:如果你要编写一个基于FastCGI的服务器,那么你需要继承 SOAP::RPC::CGIStub 类,程序的其余部分将保持不变。
接下来我们定义Web Services的方法,如下我们定义两个方法,一个是两个数相加,一个是两个数相除:
class MyServer < SOAP::RPC::StandaloneServer
...............
# 处理方法
def add(a, b)
return a + b
end
def div(a, b)
return a / b
end
end
接下来添加我们在服务器上定义的方法,initialize方法是公开的,用于外部的连接:
class MyServer < SOAP::RPC::StandaloneServer
def initialize(*args)
add_method(receiver, methodName, *paramArg)
end
end
以下是各参数的说明:
参数 | 描述 |
---|---|
receiver | 包含方法名的方法的对象。 如果你在同一个类中定义服务方法,该参数为 self。 |
methodName | 调用 RPC 请求的方法名。 |
paramArg | 参数名和参数模式 |
为了理解 inout 和 out 参数,考虑以下服务方法,需要输入两个参数:inParam 和 inoutParam,函数执行完成后返回三个值:retVal、inoutParam 、outParam:
def aMeth(inParam, inoutParam)
retVal = inParam + inoutParam
outParam = inParam . inoutParam
inoutParam = inParam * inoutParam
return retVal, inoutParam, outParam
end
公开的调用方法如下:
add_method(self, "aMeth", [
%w(in inParam),
%w(inout inoutParam),
%w(out outParam),
%w(retval return)
])
最后我们通过实例化派生类,并调用 start 方法来启动服务:
myServer = MyServer.new("ServerName",
"urn:ruby:ServiceName", hostname, port)
myServer.start
以下是请求参数的说明:
参数 | 描述 |
---|---|
ServerName | 服务名,你可以取你喜欢的 |
urn:ruby:ServiceName | Here urn:ruby 是固定的,但是你可以为你的服务取一个唯一的 ServiceName |
hostname | 指定主机名 |
port | web 服务端口 |
接下来我们通过以上的步骤,创建一个独立的服务:
require "soap/rpc/standaloneserver"
begin
class MyServer < SOAP::RPC::StandaloneServer
# Expose our services
def initialize(*args)
add_method(self, "add", "a", "b")
add_method(self, "div", "a", "b")
end
# Handler methods
def add(a, b)
return a + b
end
def div(a, b)
return a / b
end
end
server = MyServer.new("MyServer",
"urn:ruby:calculation", "localhost", 8080)
trap("INT){
server.shutdown
}
server.start
rescue => err
puts err.message
end
执行以上程序后,就启动了一个监听 8080 端口的本地服务,并公开两个方法:add 和 div。
你可以再后台执行以上服务:
$ ruby MyServer.rb&
ruby 中使用 SOAP::RPC::Driver 类开发 SOAP 客户端。接下来我们来详细看下 SOAP::RPC::Driver 类的使用。
调用 SOAP 服务需要以下信息:
接下来我们就一步步来创建 SOAP 客户端来调用以上的 SOAP 方法:add 、 div:
我们可以通过实例化 SOAP::RPC::Driver 类来调用它的新方法,如下所示:
SOAP::RPC::Driver.new(endPoint, nameSpace, soapAction)
以下是参数的描述:
参数 | 描述 |
---|---|
endPoint | 连接 SOAP 服务的 URL 地址 |
nameSpace | 命名空间用于 SOAP::RPC::Driver 对象的所有 RPC . |
soapAction | 用于 HTTP 头部的 SOAPAction 字段值。如果是字符串是"" 则默认为 nil |
为 SOAP::RPC::Driver 添加 SOAP 服务方法,我们可以通过实例 SOAP::RPC::Driver 来调用以下方法:
driver.add_method(name, *paramArg)
以下是参数的说明:
参数 | 描述 |
---|---|
name | 远程web服务的方法名 |
paramArg | 指定远程程序的参数 |
最后我们可以使用 SOAP::RPC::Driver 实例来调用 SOAP 服务:
result = driver.serviceMethod(paramArg...)
serviceMethod SOAP服务的实际方法名,paramArg为方法的参数列表。
基于以上的步骤,我们可以编写以下的 SOAP 客户端:
#!/usr/bin/ruby -w
require "soap/rpc/driver"
NAMESPACE = "urn:ruby:calculation"
URL = "http://localhost:8080/"
begin
driver = SOAP::RPC::Driver.new(URL, NAMESPACE)
# Add remote sevice methods
driver.add_method("add", "a", "b")
# Call remote service methods
puts driver.add(20, 30)
rescue => err
puts err.message
end
以上我们只是简单介绍 Ruby 的 Web Services 。 如果你想了解更多可以查看官方文档:Ruby 的 Web Services
介绍提供倒计时管理能力。代码演示基本用法span总时间:{{ current.total }}/spanspan剩余天数:{{ current.days }}/spanspan剩...
安装推荐使用 npm 的方式安装,它能更好地和webpack打包工具配合使用。npm i element-react --saveyarn 安装:$ yarn add elemen...
MessageBox 弹框模拟系统的消息提示框而实现的一套模态对话框组件,用于消息提示、确认消息和提交内容。从场景上说,MessageBox ...