Shopify Order API是否允许按嵌套字段过滤?

时间:2012-07-08 10:46:16

标签: ruby-on-rails shopify

我正在使用shopify_api宝石。

The API doc表示您可以通过告知返回哪些字段来减少ShopifyAPI::Order响应。例如,以下内容仅返回id属性和shipping_address属性

ShopifyAPI::Order.find(:all, params: {fields: "id,shipping_address"})

shipping_address恰好是一个包含多个字段的哈希。 是否可以指定嵌套在shipping_address内的哪些字段返回?,例如

ShopifyAPI::Order.find(:all, params: {fields: "id,shipping_address['country_code']"})

这可能会返回类似

的内容
  #<ShopifyAPI::Order:0x0000010558b348 
    @attributes={
      "id"=>12345678, 
      "shipping_address"=>#<ShopifyAPI::ShippingAddress:0x0000010558aa88 
        @attributes={"country_code"=>"US"}, 
        @prefix_options={}, 
        @persisted=false>
      }, 
    @prefix_options={}, 
    @persisted=true>

我知道我可以自己选择这些属性(order.shipping_address.country_code),但这更有利于“回避”回应。

奖金问题1:使用fields参数有哪些可察觉的优势?

奖金问题2:什么时候(如果有的话)Shopify会返回零地址?

1 个答案:

答案 0 :(得分:3)

对每个问题单独发布通常会更好,但这是答案。

  1. 没有
  2. 如果限制返回的数据,则生成响应所需的时间更少,通过网络传输的数据更少,您需要解析的数据更少。这意味着您应该更快地进行操作。这取决于许多不同的因素,很难说你会悔改多少性能提升。除非你做了大量的请求,否则我觉得它很小。
  3. 如果订单(即所有订单项)不需要发货,送货地址可能为空白。