TFS (2015) REST Services - PullRequest
       15

TFS (2015) REST Services

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

Разработчик (Cold Fusion) попросил меня предоставить REST API, чтобы они могли программно создавать рабочие элементы из собственного приложения.

Это мой первый набег на REST в TFS, и яЯ не уверен, с чего начать.Я проверил документацию Microsoft, но она, конечно, смещена в сторону .NET или клиентских библиотек, но, насколько я могу судить, я ничего не смогу с этим сделать, так как это «холодный синтез», выполняющий «вызов»?

Могу ли я получить совет относительно того, как мне этого добиться?

1 Ответ

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

API представления представительского состояния (REST) ​​являются конечными точками службы, которые поддерживают наборы операций (методов) HTTP, которые обеспечивают создание, получение, обновление или удаление доступа к ресурсам службы.

API для создания рабочего элемента выглядит следующим образом:

POST https://{accountName}.visualstudio.com/{project}/_apis/wit/workitems/${type}?api-version=4.1

[
  {
    "op": "add",
    "path": "/fields/System.Title",
    "from": null,
    "value": "Sample task"
  }
]

Если вы хотите просто протестировать остальные API, вы можете загрузить Почтальон и проверить APIиспользуй это.Если вы хотите использовать остальные API в коде, вы можете обратиться к приведенному ниже примеру.

Вот пример получения списка проектов для вашего аккаунта:

using System.Net.Http;
using System.Net.Http.Headers;

...

//encode your personal access token                   
string credentials = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "", personalAccessToken)));

ListofProjectsResponse.Projects viewModel = null;

//use the httpclient
using (var client = new HttpClient())
{
    client.BaseAddress = new Uri("https://{accountname}.visualstudio.com");  //url of our account
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials); 

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

    //check to see if we have a succesfull respond
    if (response.IsSuccessStatusCode)
    {
        //set the viewmodel from the content in the response
        viewModel = response.Content.ReadAsAsync<ListofProjectsResponse.Projects>().Result;

        //var value = response.Content.ReadAsStringAsync().Result;
    }   
}

Полезные ссылки:

...