Ruby on Rails 学习笔记 一

本文分享了使用Rails设计网站API的两个关键注意事项:一是如何在ActionController中配置保护措施以允许特定非GET请求;二是如何在routes.rb文件中正确设置路由以支持POST和GET请求。此外,还提供了使用Ruby发送HTTP GET和POST请求的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在用rails设计一个网站的API,觉得需要注意的两个地方:

 

1. 注意在ActionController里设置:

protect_from_forgery :except => :your_action

   允许公开的非Get方式的请求 

 

2. 注意在config/routes.rb里设置好相关的路由,尤其是Post或者Get的方式:

 

 

map.connect 'controller/action', :conditions => {:method => :post}, :controller => "controller", :action => "action"
map.connect 'controller/action', :conditions => {:method => :get}, :controller => "controller", :action => "action"

 

Ruby发送http request的小结:

 

1. Ruby 以Get方式发送http request:

def get_http(host, path, port, query)
    return Net::HTTP.get(host, "#{path}?".concat(query.collect { |k,v| "#{k}=#{CGI::escape(v.to_s)}" }.reverse.join('&')), port) if not query.nil?
    return Net::HTTP.get(host, path, port)
end

def get(uri)
    url = URI.parse(uri)
    host = url.host
    path = url.path
    port = url.port
    query = url.query
    get_http(host, path, port, query)
end
get("http://localhost:3000/controller/action?sign=a98689zhxnxyi")
 

2. Ruby 以Post方式发送http request:

def post(uri, params)
    url = URI.parse(uri)
    Net::HTTP.start(url.host, url.port) do |http|
        res = Net::HTTP::post_form(url, params)
        puts res.body
    end
end
post("http://localhost:3000/controller/action", { 'sign' => 'zzbxxwz89y6n'})

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值