You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi 10.3.2中如何用REST调用Shopify API并处理分页

在Delphi 10.3.2中使用TNetHTTPClient实现Shopify REST API的Token认证与分页

一、替换URL认证为Token Header认证

直接通过TNetHTTPClient的CustomHeaders添加Shopify要求的X-Shopify-Access-Token,即可替代原URL中的账号密码认证方式,示例代码如下:

var
  HttpClient: TNetHTTPClient;
  Response: IHTTPResponse;
  CurrentPageUrl: string;
begin
  HttpClient := TNetHTTPClient.Create(nil);
  try
    // 设置Shopify访问令牌Header
    HttpClient.CustomHeaders['X-Shopify-Access-Token'] := '你的实际访问令牌';
    // 初始化请求URL(移除原URL中的api:password@部分)
    CurrentPageUrl := 'https://mystore.myshopify.com/admin/api/2023-07/products.json?created_at_min=2022-01-01T00:00:00&status=any&limit=250';
    
    repeat
      // 发送GET请求获取当前页数据
      Response := HttpClient.Get(CurrentPageUrl);
      
      // 处理当前页产品数据:解析Response.ContentAsString中的JSON内容
      // 这里添加你的JSON解析与业务逻辑代码
      
      // 从响应Header中提取下一页URL
      CurrentPageUrl := ExtractNextShopifyPageUrl(Response.Headers['Link']);
    until CurrentPageUrl.IsEmpty;
  finally
    HttpClient.Free;
  end;
end;

Shopify通过响应的Link Header返回分页信息,格式示例:

https://mystore.myshopify.com/admin/api/2023-07/products.json?created_at_min=2022-01-01T00:00:00&status=any&limit=250&page_info=abc123; rel="next"

实现一个辅助函数提取rel="next"对应的URL:

function ExtractNextShopifyPageUrl(const LinkHeader: string): string;
var
  HeaderSegments: TArray<string>;
  Segment: string;
  TempUrl: string;
begin
  Result := '';
  if LinkHeader.IsEmpty then Exit;
  
  // 分割Link Header中的多个条目
  HeaderSegments := LinkHeader.Split([',']);
  for Segment in HeaderSegments do
  begin
    Segment := Segment.Trim;
    // 提取URL部分
    if Segment.StartsWith('<') then
      TempUrl := Segment.Substring(1, Segment.IndexOf('>') - 1);
    // 判断是否为下一页链接
    if Segment.Contains('rel="next"') then
    begin
      Result := TempUrl;
      Break;
    end;
  end;
end;

三、关键注意事项

  • 可以显式设置ContentType确保兼容性:HttpClient.ContentType := 'application/json';
  • 添加异常捕获逻辑,处理HTTP错误(如401认证失败、429请求频率超限等)
  • 保持API版本与令牌权限匹配,示例中使用的是2023-07版本,需与你的Shopify配置一致

内容的提问来源于stack exchange,提问作者Lucy Hutchinson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 20:50:22