改进API调用和响应

时间:2014-07-31 13:46:06

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

TheChamp帮助我解决了一系列哈希问题。谢谢。现在我想改进一下。它在观点中非常混乱

  1. 将代码移动到模型,因此只调用实例变量将显示所需的结果。就像航班类型的一个变量,出发时间,价格结构等一样。
  2. 根据某些条件,将结果排序在模型本身中。与价格一样,默认为最低价格。
  3. 获取API响应需要花费大量时间。缓存响应的各种选项有哪些,因此结果是即时的。此外,需要检查哪些值以确保缓存是新鲜的。
  4. 这是我的代码库。 (供我们考虑,API响应的一部分 - http://jsfiddle.net/PP9N5/

    模型

    class Cleartrip
      include HTTParty
      debug_output $stdout
    
      base_uri "api.staging.cleartrip.com/air/1.0/search"
      headers 'X-CT-API-KEY' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'
      format :xml
    
      def self.get_flight
    
        response = get("?from=DEL&to=BLR&depart-date=2014-08-10&adults=1&children=0&infants=0") 
        if response.success?
          response
        else
          raise response.message
        end
    
    
     end
    

    控制器

    # This does nothing
    expires_in 20.minutes, public: true 
    
    @flight = Cleartrip.get_flight
    

    浏览

    <table>
    <tbody>
    
    <% @flight["air_search_result"]["onward_solutions"]["solution"].each do |h| %>
    
    
    <tr>
      <td> # This gets the flight info
        <% Array.wrap(h["flights"]["flight"]["segments"]["segment"]).each do |segment| %>
    
    
              <strong><%= segment['airline'] %></strong> <br>
              <%= segment['departure_airport']  %> - <%= segment['departure_date_time']  %> ||     
              <%= segment['arrival_airport']  %> - <%= segment['arrival_date_time']  %> <br>
    
    
        <% end %>
        <hr>
      </td>
    
      <td> # this gets the type of fare, Refundable/ Non-refundable
        <%= h["pax_pricing_info_list"]["pax_pricing_info"]["pricing_info_list"]["pricing_info"]["fare_type"] %>
    
      </td>
    
      <td> # This gets the fare structure
        <% h["pax_pricing_info_list"]["pax_pricing_info"]["pricing_info_list"]["pricing_info"]["pricing_elements"]["pricing_element"].each do |f| %>
        <%= f['category']%> - <%= f['amount'] %> <br>
        <% end %>
    
      </td>
    
      <td> # The pricing summary
        <strong><%=h["pricing_summary"]["total_fare"] %></strong>
      </td>
    
    </tr> 
    
    <% end %>
    
    
    </tbody>
    </table>
    

    赞赏一般准则。

    感谢。

0 个答案:

没有答案