Tag: api

如何使用Ruby在Hadoop HDFS中编写和读取文件?

有没有办法使用Ruby使用HDFS Api? 据我所知,没有多语言文件Api,唯一的方法是使用本机Java Api。 我尝试使用JRuby,但这个解决方案是不稳定的,而不是原生的。 我还看了HDFS Thrift Api,但它不完整,也缺少许多function(比如写入索引文件)。 除了使用JRuby或Thrift Api之外,有没有办法使用Ruby使用HDFS?

使用HTTParty进行非常基本的Rails 4.1 API调用

Rails相对较新。 我试图调用一个API,它应该返回一个唯一的URL给我。 我在我的应用程序上捆绑了HTTParty。 我已经创建了一个UniqueNumber控制器,我已经阅读了几个HTTParty指南,只要我想要的东西,但也许我只是有点迷失,真的不知道该怎么做。 基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。 有人能指出我正确的方向或与我分享一些代码吗?

在点击Google Contacts API时出现“按对等方重置连接”错误

我正在尝试使用Google Contacts API将Google Contacts添加到Rails应用程序中。 我已完成Oauth2握手,现在正在使用我的访问令牌请求受保护资源。 这是代码: uri = URI(‘https://www.google.com/m8/feeds/contacts/default/full’) params = { :client_id => APP_CONFIG[:google_api_client_id], :access_token => auth.access_token, “max-results”.to_sym => max_results } uri.query = URI.encode_www_form(params) res = Net::HTTP.get_response(uri)

强制所有收到的请求Content-Type为JSON

我实际上正在使用一个使用Rails 4的API。如果客户端没有在Content-Type标头中指定媒体类型,我想将请求的Content-Type设置为JSON。 为了获得该行为,我尝试在ApplicationController添加以下before_action : def set_request_default_content_type request.format = :json end 在我的RegistrationsController#create方法中,我有一个断点来检查一切是否正常。 好吧, request.format技巧不起作用,尽管值设置为application/json ,似乎控制器(或Rails内部)不会将接收到的请求的Content-Type视为JSON。 我使用以下正文进行了POST请求(并且没有Content-Type): {“user” : {“email”:”foobar@mail.net”,”password”:”foobarfoo”}} 通过Pry调试我看到: [2] api(#) _ request.format.to_s => “application/json” [3] api(#) _ params => { “action” => “create”, “controller” => “v1/registrations” } 这意味着Rails没有考虑我的请求,使用Mime::JSON配置了request.format,而是使用Mime::ALL ,因此它没有解析请求的JSON主体。 🙁

Ruby Post请求:PDF文件

上传文档的API示例是这样的 headers = { ‘Authorization’: ‘Bearer ACCESS_TOKEN’, } params = { ‘doctor’: ‘https://drchrono.com/api/doctors/1234’, ‘patient’: ‘https://drchrono.com/api/patients/5678’, ‘description’: ‘Short document description here’, ‘date’: ‘2014-02-24’, ‘metatags’: json.dumps([‘tag1’, ‘tag2’]), } with open(‘/path/to/your.pdf’, ‘rb’) as f: files = {‘document’: f} requests.post( ‘https://drchrono.com/api/documents’, data=params, files=files, headers=headers, ) 我使用Prawn来创建PDF。 一个路由自动下载PDF,而另一个路由使其在浏览器中查看。 我遇到了问题(试图弄清楚它是Prawn PDF问题还是PDF问题)我从网上下载了一个相当基本的PDF。 同样的问题。 我正在使用HTTParty发送我的POST请求。 headers = {‘Authorization’ => ‘Bearer ‘ + access_token} […]

如何使用多行字符串示例比较Cucumber步骤中的xml输出?

Chargify在他们的文档中有这个Cucumber场景。 Scenario: Retrieve a customer via my reference id (as an integer or simple string) Given I have a customer with these attributes | reference | first_name | last_name | email | | 7890 | Joe | Blow | joe@example.com | When I send a GET request to https://[@subdomain].chargify.com/customers/lookup.xml?reference=7890 Then the response status should be […]

如何与Ruby的CalDAV服务器进行交互?

我需要在Ruby(Rails为精确)应用程序中使用CalDAV在日历服务器上创建事件。 我看过一些不同的图书馆并做了一些谷歌搜索。 我看了ri-cal( http://ri-cal.rubyforge.org/rdoc/ )但不确定它是否支持将数据发送到服务器或者我自己必须这样做, 这看起来很有希望http://www.local-guru.net/blog/pages/rubycaldav ,但它说它是alpha软件,我需要稳定的东西。 做这个的最好方式是什么? 是否有任何库已经执行此操作,我是否需要形成自己的HTTP请求? 关于这个问题的任何建议都是有意义的

HTTP POST(未知协议)上的SSL错误

尝试通过SSL连接到Imgur API会给我一个错误。 这是代码和错误: API_URI = URI.parse(‘https://api.imgur.com’) API_PUBLIC_KEY = ‘Client-ID –‘ ENDPOINTS = { :image => ‘/3/image’, :gallery => ‘/3/gallery’ } # Public: Upload an image # # args – The image path for the image to upload # def upload(image_path) http = Net::HTTP.new(API_URI.host) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE params = {‘image’ => File.open(image_path)} request […]

如何使用GRAPE API允许二进制文件下载

我想允许使用ruby的Grape API下载二进制文件(.p12文件)。 这就是我想要的。 get ‘/download_file’ do pkcs12 = generate_pkcsfile content_type(‘application/octet-stream’) body(pkcs12.der) end 使用ActionController的等效代码是 begin pkcs12 = generate_pkcsfile send_data(pkcs12.der, :filename => ‘filename.p12′) end 问题是使用API​​下载的文件似乎是为每个字符嵌入了’\ ufffd’前缀的文本文件,而使用浏览器下载的文件似乎是二进制文件。 如何使用GRAPE API框架允许下载通过ActionController的send_data下载的同一文件

使用Rails(HTTP请求)连接到Web服务?

我正在使用Ruby on Rails 3,我正在尝试实现API以从Web服务检索帐户信息。 也就是说,我想连接到具有Account类的Web服务,并从URI http:///accounts/1路由的show action获取信息。 这时,在web服务accounts_controller.rb文件中,我有: class AccountsController @account.to_json } end end end 现在我需要一些建议来连接到Web服务。 在客户端应用程序中,我应该有一个HTTP GET请求,但我的问题是:连接到发出HTTP请求的Web服务的“最佳”方法是什么? 客户端应用程序中的此代码有效: url = URI.parse(‘http:///accounts/1.json’) req = Net::HTTP::Get.new(url.path) res = Net::HTTP.start(url.host, url.port) {|http| http.request(req) } @output = JSON(res.body)[“account”] 但是,上面的代码是“实现API的方式”吗? 是否可以使用第三方插件和gem?