401 Ошибка при получении списка конечных точек службы с использованием REST API из расширения TFS
Я разработал расширение TFS для TFS 2017 на месте. Мне нужно получить список конечных точек сервиса в проекте
Я использую следующий код внутри расширения TFS ( код-хаб)
private callTfsApi() {
const vsoContext = VSS.getWebContext();
let requestUrl = vsoContext.host.uri
+ vsoContext.project.id
+ "/_apis/distributedtask/serviceendpoints?api-version=3.0-preview.1";
return VSS.getAccessToken().then(function (token) {
// Format the auth header
const authHeader = VSS_Auth_Service.authTokenManager.getAuthorizationHeader(token);
// Add authHeader as an Authorization header to your request
return $.ajax({
url: requestUrl,
type: "GET",
dataType: "json",
headers: {
"Authorization": authHeader
}
}).then((response: Array<any>) => {
console.log(response);
});
});
}
На каждый запрос сервер отвечает со статусом 401 (не авторизован).
Если я использую почтальон и обычную аутентификацию, вызов API конечных точек службы работает.
Также работает тот же код, но другой API-вызов ( проекты).
let requestUrl = vsoContext.host.uri + "_apis/projects?api-version=1.0";
Существует ли какая-то известная ошибка, связанная с API конечных точек службы, или, возможно, расширение должно указывать область действия? (не уверен, какой из них включить, хотя)
2 ответа
Конечные точки сервиса создаются на уровне проекта. Если бы вы могли запросить информацию о проекте, вы также должны быть в состоянии сделать это.
Вы можете попытаться добавить связанную сферу vso.project
на https://docs.microsoft.com/en-us/vsts/extend/develop/manifest посмотрите, поможет ли это.
Другой способ сузить эту проблему - напрямую использовать Rest API для вызова из кода (не внутри расширения TFS), чтобы увидеть, связана ли проблема со стороной расширения.