Mulai menggunakan REST API
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Integrasikan aplikasi Anda dengan Azure DevOps menggunakan REST API yang disediakan dalam artikel ini.
API mengikuti pola umum, seperti contoh berikut.
VERB https://{instance}/{collection}/{team-project}/_apis/{area}/{resource}?api-version={version}
Tip
Seiring berkembangnya API, kami sarankan Anda menyertakan versi API di setiap permintaan. Praktik ini dapat membantu Anda menghindari perubahan tak terduga dalam API yang dapat rusak.
Azure DevOps Services
Untuk Layanan Azure DevOps, instance
adalah dev.azure.com/{organization}
dan collection
adalah DefaultCollection
, sehingga polanya terlihat seperti contoh berikut.
VERB https://dev.azure.com/{organization}/_apis/{area}/{resource}?api-version={version}
Contoh berikut menunjukkan cara mendapatkan daftar proyek dalam organisasi.
curl -u {username}:{personalaccesstoken} https://dev.azure.com/{organization}/_apis/projects?api-version=2.0
Jika Anda ingin memberikan token akses pribadi (PAT) melalui header HTTP, Anda harus terlebih dahulu mengonversinya menjadi string Base64. Contoh berikut menunjukkan cara mengonversi ke Base64 menggunakan C#. String yang dihasilkan kemudian dapat disediakan sebagai header HTTP dalam format .
Authorization: Basic BASE64PATSTRING
Contoh berikut menunjukkan C# menggunakan kelas HttpClient.
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 = client.GetAsync(
"https://dev.azure.com/{organization}/_apis/projects").Result)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Sebagian besar sampel kami menggunakan PATS, karena merupakan contoh yang ringkas untuk mengautentikasi dengan layanan. Namun, ada berbagai mekanisme autentikasi yang tersedia untuk Azure DevOps Services termasuk Microsoft Authentication Library (MSAL), OAuth, dan Session Tokens. Untuk informasi selengkapnya, lihat Panduan autentikasi, untuk membantu Anda menentukan mana yang paling cocok untuk skenario Anda.
Azure DevOps Server
Untuk Azure DevOps Server, instance
adalah {server:port}
. Port default untuk koneksi non-SSL adalah 8080.
Koleksi defaultnya adalah DefaultCollection
, tetapi Anda dapat menggunakan koleksi apa pun.
Berikut cara mendapatkan daftar proyek dari Azure DevOps Server menggunakan port dan koleksi default di seluruh SSL:
curl -u {username}:{personalaccesstoken} https://{server}/DefaultCollection/_apis/projects?api-version=2.0
Untuk mendapatkan daftar yang sama di seluruh koneksi non-SSL:
curl -u {username}:{personalaccesstoken} http://{server}:8080/DefaultCollection/_apis/projects?api-version=2.0
Contoh-contoh ini menggunakan PATS, yang mengharuskan Anda membuat PAT.
Respons
Anda harus mendapatkan respons seperti ini.
{
"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"
},
"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"
},
"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
}
Responsnya adalah JSON, yang umumnya anda dapatkan kembali dari REST API, meskipun ada beberapa pengecualian, seperti blob Git.
Sekarang, Anda dapat melihat sekitar area API tertentu seperti pelacakan item kerja atau Git dan sampai ke sumber daya yang Anda butuhkan. Terus baca untuk mempelajari selengkapnya tentang pola umum yang digunakan dalam API ini.
Kata kerja HTTP
Kata kerja | Digunakan untuk... |
---|---|
GET | Mendapatkan sumber daya atau daftar sumber daya |
POST | Membuat sumber daya, Mendapatkan daftar sumber daya menggunakan kueri yang lebih canggih |
TARUH | Buat sumber daya jika tidak ada atau, jika tidak, perbarui |
PATCH | Memperbarui sumber daya |
DELETE | Menghapus sumber daya |
Meminta header dan meminta konten
Saat Anda menyediakan isi permintaan (biasanya dengan kata kerja POST, PUT, dan PATCH), sertakan header permintaan yang menjelaskan isinya. Contohnya,
POST https://dev.azure.com/fabrikam-fiber-inc/_apis/build-release/requests
Content-Type: application/json
{
"definition": {
"id": 3
},
"reason": "Manual",
"priority": "Normal"
}
Penimpaan metode HTTP
Beberapa proksi web mungkin hanya mendukung kata kerja HTTP GET dan POST, tetapi bukan kata kerja HTTP yang lebih modern seperti PATCH dan DELETE.
Jika panggilan Anda mungkin melewati salah satu proksi ini, Anda dapat mengirim kata kerja aktual menggunakan metode POST, dengan header untuk mengambil alih metode .
Misalnya, Anda mungkin ingin memperbarui item kerja (PATCH _apis/wit/workitems/3
), tetapi Anda mungkin harus melalui proksi yang hanya mengizinkan GET atau POST.
Anda dapat meneruskan kata kerja yang tepat (PATCH dalam hal ini) sebagai parameter header permintaan HTTP dan menggunakan POST sebagai metode HTTP aktual.
POST https://dev.azure.com/fabrikam-fiber-inc/_apis/wit/workitems/3
X-HTTP-Method-Override: PATCH
{
(PATCH request body)
}
Kode respons
Respons | Catatan |
---|---|
200 | Sukses, dan ada isi respons. |
201 | Berhasil, saat membuat sumber daya. Beberapa API mengembalikan 200 saat berhasil membuat sumber daya. Lihat dokumen untuk API yang Anda gunakan untuk memastikannya. |
204 | Sukses, dan tidak ada isi respons. Misalnya, Anda mendapatkan respons ini saat menghapus sumber daya. |
400 | Parameter dalam URL atau di isi permintaan tidak valid. |
401 | Autentikasi gagal. Seringkali, respons ini karena header Otorisasi yang hilang atau salah bentuk. |
403 | Pengguna yang diautentikasi tidak memiliki izin untuk melakukan operasi. |
404 | Sumber daya tidak ada, atau pengguna yang diautentikasi tidak memiliki izin untuk melihat bahwa sumber daya tersebut ada. |
409 | Ada konflik antara permintaan dan status data di server. Misalnya, jika Anda mencoba mengirimkan permintaan pull dan sudah ada permintaan pull untuk penerapan, kode respons adalah 409. |
Berbagi sumber daya lintas asal (CORS)
Layanan Azure DevOps mendukung CORS, yang memungkinkan kode JavaScript dilayani dari domain selain dev.azure.com/*
membuat permintaan Ajax ke REST API Azure DevOps Services. Setiap permintaan harus memberikan kredensial (PAT dan token akses OAuth adalah opsi yang didukung). Contoh:
$( document ).ready(function() {
$.ajax({
url: 'https://dev.azure.com/fabrikam/_apis/projects?api-version=1.0',
dataType: 'json',
headers: {
'Authorization': 'Basic ' + btoa("" + ":" + myPatToken)
}
}).done(function( results ) {
console.log( results.value[0].id + " " + results.value[0].name );
});
});
(ganti myPatToken
dengan token akses pribadi)
Penerapan versi
REST API Azure DevOps di-versi untuk memastikan aplikasi dan layanan terus berfungsi seiring berkembangnya API.
Panduan
- Tentukan versi API dengan setiap permintaan (diperlukan).
- Format versi API sebagai berikut: {major}. {minor}-{stage}. {resource-version}. Misalnya,
1.0
,1.1
,1.2-preview
,2.0
. - Tentukan revisi API tertentu saat dalam pratinjau, dengan menggunakan format versi berikut:
1.0-preview.1
,1.0-preview.2
. Setelah API dirilis (1.0, misalnya), versi pratinjaunya (pratinjau 1.0) tidak digunakan lagi dan dapat dinonaktifkan setelah 12 minggu. - Tingkatkan ke versi API yang dirilis. Setelah API pratinjau dinonaktifkan, permintaan yang menentukan
-preview
versi ditolak.
Penggunaan
Tentukan versi API di header permintaan HTTP atau sebagai parameter kueri URL.
Header permintaan HTTP:
Accept: application/json;api-version=1.0
Parameter kueri:
GET https://dev.azure.com/{organization}/_apis/{area}/{resource}?api-version=1.0
Versi yang didukung
Untuk informasi tentang versi yang didukung, lihat Penerapan versi REST API, Versi yang didukung.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk