viernes, 27 de abril de 2018

Llamadas REST al TFS


El TFS se puede consultar por llamadas REST, puedes usar las librerías para tal efecto o puedes hacerlas tú las llamadas
Obtener una lista de proyectos seria

public ListofProjectsResponse.Projects GetAllProjects()
        {
            ListofProjectsResponse.Projects viewModel = null;
            using (HttpClient confClient = new HttpClient(GetCredential()))
            {
                confClient.BaseAddress = @”http://nametfs:8080/tfs/DefaultCollection/”;
                confClient.DefaultRequestHeaders.Accept.Clear();
                confClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                HttpResponseMessage message = confClient.GetAsync("_apis/projects?stateFilter=All&api-version=1.1").Result;
                if (message.IsSuccessStatusCode)
                {
                     viewModel = message.Content.ReadAsAsync<ListofProjectsResponse.Projects>().Result;
                }
            }
            return viewModel;

}

La seguridad puede ser por un tokent del TFS o puede que no lo tengas así configurado y sea una configuración de Windows. Si ese es tu caso en USUARIO y PASSWORD tienes que poner un usuario con permisos sobre el TFS
 private WebRequestHandler GetCredential()
        {
            WebRequestHandler authtHandler = new WebRequestHandler()
            {
                Credentials = new NetworkCredential(USUARIO, PASSWORD)
            };
            return authtHandler;
        }



Si está configurado con autentificación Basic

public ListofProjectsResponse.Projects GetAllProjects()
        {
            ListofProjectsResponse.Projects viewModel = null;
            using (HttpClient confClient = new HttpClient())
            {
                confClient.BaseAddress = @”http:// nametfs:8080/tfs/DefaultCollection/”;
                confClient.DefaultRequestHeaders.Accept.Clear();
                confClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                confClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", _credentials);
                HttpResponseMessage message = confClient.GetAsync("_apis/projects?stateFilter=All&api-version=1.1").Result;
                if (message.IsSuccessStatusCode)
                {
                     viewModel = message.Content.ReadAsAsync<ListofProjectsResponse.Projects>().Result;
                }
            }
            return viewModel;

}

Donde:  _credentials= Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "", PersonalAccessToken)))

PersonalAccessToken à este es un valor que tienes en el TFS

No hay comentarios:

Publicar un comentario