执行一定的逻辑,直到满足要求

问题描述

我已经编写了一个C#代码以从供应商API中提取数据,在这里,每个API请求中最多只能提取100条记录。如果有超过100条记录存在于API中/从API中返回,则API将以{URL({1}})的形式以Next URL属性的形式返回"paging"信息;

JSON

在这里的关注点是我想编写一个递归代码逻辑,该逻辑将检查返回的 ],"paging": { "next": { "after": "2459708154","link": "https://api.someapi.com/objects?archived=false&limit=100&after=2459708154 },"prev": null } 响应数据,如果它包含响应中附加的JSON属性,则它将再次调用API,直到它会到达最终请求调用,其中"paging"属性数据不会在"paging"响应中附加/返回或为空。

目前,我正在使用多个JSON语句并仅将数据提取到300-400条记录为止,如下所示;

If

感谢您的建议!

解决方法

使用while循环来解决这个问题看起来像这样

var response = await _objReq.Post<Deals>(_limit,dtPastDay,isGetRecentAPI: true);
List<Deal> recentDeals = response.results;
string nextPage = response.paging.next.after;

while (!string.IsNullOrEmpty(nextPage))
{
    response = await _objReq.Post<Deals>(_limit,nxtLink: nextPage,isGetRecentAPI: true);
    recentDeals.AddRange(response.results);
    nextPage = response.paging.next.after;
}