VSTS - используйте API, чтобы получить список всех проектов, а не только топ-100 - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь получить полный список проектов в VSTS.Использование этого кода дает мне первые 100 проектов, но я не могу найти способ указать / попросить больше

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri("https://{accountname}.visualstudio.com/DefaultCollection");
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", {credentials});

    HttpResponseMessage response = client.GetAsync("_apis/projects?stateFilter=All&api-version=1.0").Result;

    if (response.IsSuccessStatusCode)
    {
        responseString = response.Content.ReadAsStringAsync().Result.ToString();
    }
    else
    {
        //failed
    }
}

// Convert responseString into a json Object
RootObj jsonObj = JsonConvert.DeserializeObject<RootObj>(responseString);
Console.WriteLine("Found " + jsonObj.Count + " projects");

//Do stuff
foreach (var obj in jsonObj.Value)
{
    //foreach project...
}

Я знаю, что существует более 100 проектов, но он будет возвращать только столько.Есть ли способ включить «ТОП 1000» в запрос?Каким будет этот синтаксис?Спасибо


Работает теперь, когда я изменил одну строку, чтобы читать:

HttpResponseMessage response = client.GetAsync("_apis/projects?$top=250&stateFilter=All&api-version=1.0").Result;

1 Ответ

0 голосов
/ 04 июня 2018

Я удивлен, что документация по API неполная.Вы можете указать параметр $top.

Пример: _apis/projects?$top=250&version=1.0

...