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

Nic*_*olm 6 ruby-on-rails shopify

我正在使用shopify_api宝石。

API文档显示,您可以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>
Run Code Online (Sandbox Code Playgroud)

我知道我可以选择自己的属性(order.shipping_address.country_code),但这更多是为了“缩小”响应。

奖励问题1:使用fields参数有什么明显的好处?

奖励问题2: Shopify何时(如果有)会返回零送货地址?

Joh*_*uff 3

通常最好针对每个问题单独发布,但这里是答案。

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