Azure DevOps Services REST API Başvurusu
Azure DevOps Services/Azure DevOps Server REST API Başvurusu'na hoş geldiniz.
Temsili Durum Aktarımı (REST) API'leri; hizmet kaynaklarına oluşturma, alma, güncelleştirme veya silme erişimi sağlayan HTTP işlem kümelerini (yöntemler) destekleyen hizmet uç noktalarıdır. Bu makalede size yol gösterilir:
- REST API istek/yanıt çiftinin temel bileşenleri.
- REST isteği oluşturma ve gönderme ve yanıtı işlemeye genel bakış.
REST API'lerin çoğuna istemci kitaplıklarımız aracılığıyla erişilebilir ve bu kitaplıklar istemci kodunuzu büyük ölçüde basitleştirmek için kullanılabilir.
REST API istek/yanıt çiftinin bileşenleri
REST API istek/yanıt çifti beş bileşene ayrılabilir:
İstek URI'sini aşağıdaki biçimde kullanın:
VERB https://{instance}[/{team-project}]/_apis[/{area}]/{resource}?api-version={version}
-
örnek: İsteği gönderdiğiniz Azure DevOps Services kuruluş veya TFS sunucusu. Bunlar aşağıdaki gibi yapılandırılmıştır:
- Azure DevOps Services:
dev.azure.com/{organization}
- TFS:
{server:port}/tfs/{collection}
(varsayılan bağlantı noktası 8080'dir ve koleksiyon değeri herhangi bir koleksiyonDefaultCollection
olabilir)
- Azure DevOps Services:
-
kaynak yolu: Kaynak yolu aşağıdaki gibidir:
_apis/{area}/{resource}
. Örneğin,_apis/wit/workitems
. -
api-version: API'ler geliştikçe uygulamanızın veya hizmetinizin bozulmasından kaçınmak için her API isteğinde bir api sürümü bulunmalıdır. api sürümleri şu biçimdedir:
{major}.{minor}[-{stage}[.{resource-version}]]
, örneğin:api-version=1.0
api-version=1.2-preview
api-version=2.0-preview.1
Not: alan ve takım projesi , API isteğine bağlı olarak isteğe bağlıdır. TFS sürümünüz için hangi REST API sürümlerinin geçerli olduğunu bulmak için aşağıdaki TFS'den REST API sürümüne eşleme matrisine göz atın.
-
örnek: İsteği gönderdiğiniz Azure DevOps Services kuruluş veya TFS sunucusu. Bunlar aşağıdaki gibi yapılandırılmıştır:
HTTP isteği ileti üst bilgisi alanları:
- Hizmete istediğiniz işlem türünü belirten bir HTTP yöntemi (işlem veya eylem olarak da bilinir). Azure REST API'leri GET, HEAD, PUT, POST ve PATCH yöntemlerini destekler.
- Belirtilen URI ve HTTP yöntemi için gerekli olan isteğe bağlı üst bilgi alanları. Örneğin, istek için istemci yetkilendirme bilgilerini içeren taşıyıcı belirteci sağlayan bir Yetkilendirme üst bilgisi.
URI ve HTTP işlemini destekleyecek isteğe bağlı HTTP istek iletisi gövdesi alanları. Örneğin POST işlemleri, karmaşık parametreler olarak iletilen MIME kodlamalı nesneler içerir.
- POST veya PUT işlemleri için, gövde için MIME kodlama türü İçerik türü istek üst bilgisinde de belirtilmelidir. Bazı hizmetlerde
application/json
gibi belirli bir MIME türü kullanılması gerekir.
- POST veya PUT işlemleri için, gövde için MIME kodlama türü İçerik türü istek üst bilgisinde de belirtilmelidir. Bazı hizmetlerde
HTTP yanıt iletisi üst bilgi alanları:
- 2xx başarı kodlarından 4xx veya 5xx hata kodlarına kadar değişebilen bir HTTP durum kodu. Alternatif olarak API belgelerinde belirtildiği şekilde hizmet tarafından tanımlanan bir durum kodu da döndürülebilir.
- İsteğin yanıtını desteklemek için
Content-type
yanıt üst bilgisi gibi isteğe bağlı ek üst bilgi alanları.
İsteğe bağlı HTTP yanıt iletisi gövdesi alanları:
- MIME ile kodlanmış yanıt nesneleri HTTP yanıt gövdesinde döndürülebilir; örneğin, veri döndüren bir GET yönteminden gelen yanıt. Bu nesneler genellikle JSON veya XML gibi yapılandırılmış biçimde döndürülür ve bu durum
Content-type
yanıt üst bilgisi ile belirtilir. Örneğin, Azure AD erişim belirteci istediğinizde, yanıt gövdesinde bir veri koleksiyonundaki çeşitli ad/değer eşleştirilmiş nesnelerden biri olan öğesi olarakaccess_token
döndürülür. Bu örnekte, yanıt üst bilgisiContent-Type: application/json
de eklenmiştir.
- MIME ile kodlanmış yanıt nesneleri HTTP yanıt gövdesinde döndürülebilir; örneğin, veri döndüren bir GET yönteminden gelen yanıt. Bu nesneler genellikle JSON veya XML gibi yapılandırılmış biçimde döndürülür ve bu durum
İsteği oluşturma
Kimlik doğrulaması
Uygulamanızın veya hizmetinizin kimliğini Azure DevOps Services veya TFS ile doğrulamanın birçok yolu vardır. Aşağıdaki tablo, hangi yöntemin sizin için en iyi olduğuna karar vermenin mükemmel bir yoludur:
Uygulama türü | Description | örnek | Kimlik doğrulaması mekanizması | Kod örnekleri |
---|---|---|---|---|
Etkileşimli istemci tarafı | kullanıcı etkileşimlerine izin veren, Azure DevOps Services REST API'lerini çağıran istemci uygulaması | Bir kuruluştaki projeleri numaralandıran konsol uygulaması | Microsoft Authentication Library (MSAL) | Örnek |
Etkileşimli JavaScript | GUI tabanlı JavaScript uygulaması | Kullanıcının proje bilgilerini görüntüleyen AngularJS tek sayfalı uygulaması | MSAL | Örnek |
Etkileşimli olmayan istemci tarafı | Başsız metin yalnızca istemci tarafı uygulaması | Kullanıcıya atanan tüm hataları görüntüleyen konsol uygulaması | Cihaz Profili | Örnek |
Etkileşimli web | GUI tabanlı web uygulaması | Derleme özetlerini görüntüleyen özel Web panosu | OAuth | Örnek |
TFS uygulaması | İstemci OM kitaplığını kullanan TFS uygulaması | Ekip hata panolarını görüntüleyen TFS uzantısı | İstemci Kitaplıkları | Örnek |
Azure DevOps Services Uzantısı | uzantıyı Azure DevOps Services | Azure DevOps uzantısı örnekleri | VSS Web Uzantısı SDK'sı | örnek izlenecek yol |
Not: Kimlik doğrulaması hakkında daha fazla bilgiyi kimlik doğrulama kılavuzu sayfamızda bulabilirsiniz.
İsteği derleme
Azure DevOps Services
Azure DevOps Services için örnek şeklindedirdev.azure.com/{organization}
, bu nedenle desen şöyle görünür:
VERB https://dev.azure.com/{organization}/_apis[/{area}]/{resource}?api-version={version}
Örneğin, bir Azure DevOps Services kuruluştaki ekip projelerinin listesini alma burada verilmiştır.
curl -u {username}[:{personalaccesstoken}] https://dev.azure.com/{organization}/_apis/projects?api-version=2.0
Kişisel erişim belirtecini bir HTTP üst bilgisi aracılığıyla sağlamak istiyorsanız, önce bunu bir Base64 dizesine dönüştürmeniz gerekir (aşağıdaki örnekte C# kullanarak Base64'e nasıl dönüştürüldüğü gösterilmektedir). (Postman gibi bazı araçlar varsayılan olarak Base64 kodlaması uygular. API'yi bu tür araçlar aracılığıyla deniyorsanız, PAT'nin Base64 kodlaması gerekli değildir) Sonuçta elde edilen dize, biçiminde bir HTTP üst bilgisi olarak sağlanabilir:
Authorization: Basic BASE64PATSTRING
Burada , [HttpClient sınıfı](/previous-versions/visualstudio/hh193681(v=vs.118) kullanılarak C# dilindedir.
public static async void GetProjects()
{
try
{
var personalaccesstoken = "PAT_FROM_WEBSITE";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "", personalaccesstoken))));
using (HttpResponseMessage response = await client.GetAsync(
"https://dev.azure.com/{organization}/_apis/projects"))
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Bu sitedeki örneklerin çoğu, hizmetle kimlik doğrulaması için küçük bir örnek olduğundan Kişisel Erişim Belirteçlerini kullanır. Ancak Azure DevOps Services için MSAL, OAuth ve Oturum Belirteçleri gibi çeşitli kimlik doğrulama mekanizmaları vardır. Senaryonuz için en uygun olan kimlik doğrulama bölümüne bakın.
TFS
TFS için ve instance
{server:port}/tfs/{collection}
varsayılan olarak bağlantı noktası 8080'dir. Varsayılan koleksiyon şeklindedir DefaultCollection
, ancak herhangi bir koleksiyon olabilir.
Varsayılan bağlantı noktasını ve koleksiyonu kullanarak TFS'den ekip projelerinin listesini alma burada anlatılır.
curl -u {username}[:{personalaccesstoken}] https://{server}:8080/tfs/DefaultCollection/_apis/projects?api-version=2.0
Yukarıdaki örneklerde, kişisel erişim belirteci oluşturmanızı gerektiren kişisel erişim belirteçleri kullanılır.
Yanıtı işleme
Bunun gibi bir yanıt almalısınız.
{
"value": [
{
"id": "eb6e4656-77fc-42a1-9181-4c6d8e9da5d1",
"name": "Fabrikam-Fiber-TFVC",
"url": "https://dev.azure.com/fabrikam-fiber-inc/_apis/projects/eb6e4656-77fc-42a1-9181-4c6d8e9da5d1",
"description": "TeamFoundationVersionControlprojects",
"collection": {
"id": "d81542e4-cdfa-4333-b082-1ae2d6c3ad16",
"name": "DefaultCollection",
"url": "https: //dev.azure.com/fabrikam-fiber-inc/_apis/projectCollections/d81542e4-cdfa-4333-b082-1ae2d6c3ad16",
"collectionUrl": "https: //dev.azure.com/fabrikam-fiber-inc/DefaultCollection"
},
"defaultTeam": {
"id": "66df9be7-3586-467b-9c5f-425b29afedfd",
"name": "Fabrikam-Fiber-TFVCTeam",
"url": "https://dev.azure.com/fabrikam-fiber-inc/_apis/projects/eb6e4656-77fc-42a1-9181-4c6d8e9da5d1/teams/66df9be7-3586-467b-9c5f-425b29afedfd"
}
},
{
"id": "6ce954b1-ce1f-45d1-b94d-e6bf2464ba2c",
"name": "Fabrikam-Fiber-Git",
"url": "https://dev.azure.com/fabrikam-fiber-inc/_apis/projects/6ce954b1-ce1f-45d1-b94d-e6bf2464ba2c",
"description": "Gitprojects",
"collection": {
"id": "d81542e4-cdfa-4333-b082-1ae2d6c3ad16",
"name": "DefaultCollection",
"url": "https://dev.azure.com/fabrikam-fiber-inc/_apis/projectCollections/d81542e4-cdfa-4333-b082-1ae2d6c3ad16",
"collectionUrl": "https://dev.azure.com/fabrikam-fiber-inc/DefaultCollection"
},
"defaultTeam": {
"id": "8bd35c5e-30bb-4834-a0c4-d576ce1b8df7",
"name": "Fabrikam-Fiber-GitTeam",
"url": "https://dev.azure.com/fabrikam-fiber-inc/_apis/projects/6ce954b1-ce1f-45d1-b94d-e6bf2464ba2c/teams/8bd35c5e-30bb-4834-a0c4-d576ce1b8df7"
}
}
],
"count": 2
}
Yanıt JSON'dır. Git blobları gibi birkaç özel durum olsa da REST API'lerinden genellikle bunu alırsınız.
Artık iş öğesi izleme veya Git gibi belirli API alanlarına bakabilmeniz ve ihtiyacınız olan kaynaklara ulaşabilmeniz gerekir. Bu API'lerde kullanılan genel desenler hakkında daha fazla bilgi edinmek için okumaya devam edin.
API ve TFS sürüm eşlemesi
Aşağıda REST API sürümlerinin ve karşılık gelen TFS sürümlerinin hızlı bir eşlemesini bulabilirsiniz. Tüm API sürümleri hem belirtilen sunucu sürümünde hem de sonraki sürümlerde çalışır.
TFS Sürümü | REST API Sürümü | Yapım Sürümü |
---|---|---|
Azure DevOps Server vNext | 7.1 | |
Azure DevOps Server 2022 | 7.0 | versions >= 19.205.33122.1 |
Azure DevOps Server 2020 | 6.0 | versions >= 18.170.30525.1 |
Azure DevOps Server 2019 | 5.0 | versions >= 17.143.28621.4 |
TFS 2018 Güncelleştirme 3 | 4.1 | versions >= 16.131.28106.2 |
TFS 2018 Güncelleştirme 2 | 4.1 | versions >= 16.131.27701.1 |
TFS 2018 Güncelleştirme 1 | 4.0 | versions >= 16.122.27409.2 |
TFS 2018 RTW | 4.0 | versions >= 16.122.27102.1 |
TFS 2017 Güncelleştirme 2 | 3.2 | versions >= 15.117.26714.0 |
TFS 2017 Güncelleştirme 1 | 3,1 | versions >= 15.112.26301.0 |
TFS 2017 RTW | 3.0 | versions >= 15.105.25910.0 |
TFS 2015 Güncelleştirme 4 | 2.3 | versions >= 14.114.26403.0 |
TFS 2015 Güncelleştirme 3 | 2.3 | versions >= 14.102.25423.0 |
TFS 2015 Güncelleştirme 2 | 2,2 | versions >= 14.95.25122.0 |
TFS 2015 Güncelleştirme 1 | 2.1 | versions >= 14.0.24712.0 |
TFS 2015 RTW | 2.0 | versions >= 14.0.23128.0 |
İlgili İçerik
REST API örnekleri ve kullanım örnekleri için tümleştirme belgelerine göz atın.
İstemci Kitaplıkları
Bu REST API'leri için istemci kitaplıklarını keşfedin.
- .NET kavramsal belgeleri ve .NET başvuru belgeleri
- Git
- Node.js
- Python
- Swagger 2.0
- Web Uzantıları SDK'sı
REST API'lerin önceki sürümleri nerede? (4.1'in öncesinde)
Yakın zamanda mühendislik sistemimizde ve belge oluşturma sürecimizde bir değişiklik yaptık; bu REST API'lerini kullanmaya çalışan herkes için daha net, daha ayrıntılı ve daha doğru belgeler sağlamak için bu değişikliği yaptık. Teknik kısıtlamalar nedeniyle, bu yöntemi kullanarak yalnızca API Sürüm 4.1 ve daha yeni sürümleri belgeleyebiliyoruz. Bu değişiklik nedeniyle API Sürüm 4.1 ve daha yeni sürümlerin belgelerinin daha kolay kullanılacağına inanıyoruz.
TFS'de çalışıyorsanız veya REST API'lerin eski sürümlerini arıyorsanız, TFS 2015, 2017 ve 2018 için REST API'ye Genel Bakış'a göz atabilirsiniz.