Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Az alkalmazás integrálása az Azure DevOpsszal a cikkben található REST API-k használatával. Ezek az API-k lehetővé teszik a szolgáltatások programozott használatát, így automatizálhatja a munkafolyamatokat, integrálható más rendszerekkel, és bővítheti az Azure DevOps képességeit.
Az API-k egy gyakori mintát követnek, ahogyan az alábbi példában látható:
VERB https://{instance}/{collection}/{team-project}/_apis/{area}/{resource}?api-version={version}
Tipp
Az API-k fejlődésével azt javasoljuk, hogy minden kéréshez mellékeljen egy API-verziót. Ez a gyakorlat segíthet elkerülni az API váratlan változásait, amelyek megszakadhatnak.
Azure DevOps Services
Az Azure DevOps Services esetében instance
dev.azure.com/{organization}
és collection
DefaultCollection
, így a minta a következő példához hasonlóan néz ki:
VERB https://dev.azure.com/{organization}/_apis/{area}/{resource}?api-version={version}
Az alábbi példa bemutatja, hogyan szerezheti be a szervezetek projektjeinek listáját:
curl -u {username}:{personalaccesstoken} https://dev.azure.com/{organization}/_apis/projects?api-version=2.0
Ha a személyes hozzáférési token (PAT) egy HTTP-fejlécen keresztül szeretné megadni, először egy kettőspontot kell hozzáadni a PAT-hez. Ezután alakítsa át a kettőspont és a PAT összefűzését Base64 karakterlánccá. Az alábbi példa bemutatja, hogyan konvertálható Base64-be C# használatával. Az eredményül kapott sztring ezután HTTP-fejlécként is megadható a következő formátumban:
Authorization: Basic BASE64COLONANDPATSTRING
Megjegyzés
A hitelesítési hibák elkerülése érdekében vegye fel a kettőspontot a PAT elé.
Az alábbi példa a C#-ot mutatja be a HttpClient osztállyal.
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());
}
}
Fontos
Bár számos példában személyes hozzáférési jogkivonatokat (PAT-okat) használunk az egyszerűség kedvéért, nem javasoljuk a használatukat éles alkalmazásokhoz. Ehelyett fontolja meg a biztonságosabb hitelesítési mechanizmusok használatát. További információ: Hitelesítési útmutató.
Azure DevOps Server
Az Azure DevOps Server esetében instance
{server:port}
van. A nem SSL-kapcsolat alapértelmezett portja a 8080.
Az alapértelmezett gyűjtemény DefaultCollection
, de bármilyen gyűjteményt használhat.
Az alábbi módszerrel szerezheti be a projektek listáját az Azure DevOps Serverről az alapértelmezett port és gyűjtemény ssl-alapú használatával:
curl -u {username}:{personalaccesstoken} https://{server}/DefaultCollection/_apis/projects?api-version=2.0
Ha ugyanazt a listát szeretné lekérni egy nem SSL-kapcsolaton keresztül:
curl -u {username}:{personalaccesstoken} http://{server}:8080/DefaultCollection/_apis/projects?api-version=2.0
Ezek a példák PAT-okat használnak, amelyek megkövetelik, hogy létrehozz egy PAT-ot.
Válaszok
A következő példához hasonló választ kell kapnia:
{
"value": [
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "Fabrikam-Fiber-TFVC",
"url": "https: //dev.azure.com/fabrikam-fiber-inc/_apis/projects/00000000-0000-0000-0000-000000000000",
"description": "TeamFoundationVersionControlprojects",
"collection": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "DefaultCollection",
"url": "https: //dev.azure.com/fabrikam-fiber-inc/_apis/projectCollections/00000000-0000-0000-0000-000000000000",
"collectionUrl": "https: //dev.azure.com/fabrikam-fiber-inc"
},
"defaultTeam": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "Fabrikam-Fiber-TFVCTeam",
"url": "https: //dev.azure.com/fabrikam-fiber-inc/_apis/projects/00000000-0000-0000-0000-000000000000/teams/00000000-0000-0000-0000-000000000000"
}
},
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "Fabrikam-Fiber-Git",
"url": "https: //dev.azure.com/fabrikam-fiber-inc/_apis/projects/00000000-0000-0000-0000-000000000000",
"description": "Gitprojects",
"collection": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "DefaultCollection",
"url": "https: //dev.azure.com/fabrikam-fiber-inc/_apis/projectCollections/00000000-0000-0000-0000-000000000000",
"collectionUrl": "https: //dev.azure.com/fabrikam-fiber-inc"
},
"defaultTeam": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "Fabrikam-Fiber-GitTeam",
"url": "https: //dev.azure.com/fabrikam-fiber-inc/_apis/projects/00000000-0000-0000-0000-000000000000/teams/00000000-0000-0000-0000-000000000000"
}
}
],
"count": 2
}
A válasz JSON, amely általában a REST API-kból származik, bár van néhány kivétel, például Git-blobok.
Most áttekintheti az adott API-területeket, például a munkaelem-követést vagy a Gitet, és elérheti a szükséges erőforrásokat. További információt az ezekben az API-kban használt általános mintákról olvashat.
HTTP-műveletek
Ige | Felhasználva... |
---|---|
SZEREZZE MEG | Erőforrás vagy erőforráslista lekérése |
poszt | Erőforrás létrehozása, Erőforrások listájának lekérése speciálisabb lekérdezéssel |
Helyezze | Erőforrás létrehozása, ha nem létezik, vagy ha igen, frissítse |
javítás | Erőforrás frissítése |
töröl | Erőforrások törlése |
Fejlécek kérése és tartalom kérése
Amikor kéréstörzset ad meg (általában a POST, a PUT és a PATCH igével), a törzset leíró kérésfejléceket is tartalmaznia kell. Például
POST https://dev.azure.com/fabrikam-fiber-inc/_apis/build-release/requests
Content-Type: application/json
{
"definition": {
"id": 3
},
"reason": "Manual",
"priority": "Normal"
}
HTTP-metódus felülbírálása
Egyes webes proxyk csak a GET és a POST HTTP-igéket támogatják, a modernEBB HTTP-parancsokat azonban nem, például a PATCH és a DELETE parancsokat.
Ha a hívások áthaladhatnak ezen proxyk egyikén, POST metódussal küldheti el a tényleges műveletet egy fejléc segítségével, amely felülbírálja a metódust.
Előfordulhat például, hogy frissíteni szeretne egy munkaelemet (PATCH _apis/wit/workitems/3
), de előfordulhat, hogy olyan proxyn kell keresztülmennie, amely csak a GET vagy a POST szolgáltatást teszi lehetővé.
A megfelelő igét (ebben az esetben a PATCH-et) átadhatja HTTP-kérelem fejlécparaméterként, és a POST-ot használhatja tényleges HTTP-metódusként.
POST https://dev.azure.com/fabrikam-fiber-inc/_apis/wit/workitems/3
X-HTTP-Method-Override: PATCH
{
(PATCH request body)
}
Válaszkódok
Válasz | Jegyzetek |
---|---|
200 | Siker, és van egy válasz törzs. |
201 | Siker az erőforrások létrehozásakor. Egyes API-k 200 értéket adnak vissza egy erőforrás sikeres létrehozásakor. A biztonság érdekében tekintse meg a használt API dokumentációját. |
204 | Siker, és nincs válasz tartalom. Ez a válasz például akkor jelenik meg, ha töröl egy erőforrást. |
400 | Az URL-címben vagy a kérelem törzsében lévő paraméterek érvénytelenek. |
401 | A hitelesítés nem sikerült. Ezt a választ gyakran egy hiányzó vagy hibásan formázott engedélyezési fejléc okozza. |
403 | A hitelesített felhasználónak nincs engedélye a művelet végrehajtására. |
404 | Az erőforrás nem létezik, vagy a hitelesített felhasználó nem rendelkezik engedéllyel a létezésének megtekintéséhez. |
409 | Ütközés van a kérés és a kiszolgálón lévő adatok állapota között. Ha például megpróbál elküldeni egy pull kérést, de már létezik egy pull kérés a commit-ekhez, a válaszkód 409. |
Eltérő eredetű erőforrások megosztása (CORS)
Az Azure DevOps Services támogatja a CORS-t, amely lehetővé teszi, hogy a nem dev.azure.com/*
tartományból kiszolgált JavaScript-kód Ajax-kéréseket küldjön az Azure DevOps Services REST API-knak. Minden kérésnek meg kell adnia a hitelesítő adatokat (a PAT-k és az OAuth hozzáférési jogkivonatok egyaránt támogatottak). Példa:
$( 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 );
});
});
Cserélje le a myPatToken
egy PAT-ra.
Verziókezelés
Az Azure DevOps REST API-k verziószáma biztosítja, hogy az alkalmazások és szolgáltatások továbbra is működjenek az API-k fejlődésével.
Iránymutatások
- Adja meg az API-verziót minden kéréssel (szükséges).
- Az API-verziók formázása a következő módon: {major}.{minor}-{stage}.{resource-version}. Például:
1.0
,1.1
,1.2-preview
,2.0
. - Adja meg az API egy adott verzióját, amikor előzetes verzióban van, a következő verzióformátummal:
1.0-preview.1
,1.0-preview.2
. Az API kiadása (például 1.0) után az előzetes verzió (1.0-preview) elavult, és 12 hét után inaktiválható. - Frissítsen az API kiadott verziójára. Az előzetes verziójú API inaktiválása után a
-preview
verziót meghatározó kérések elutasításra kerülnek.
Használat
Adja meg az API-verziót a HTTP-kérés fejlécében vagy URL-lekérdezési paraméterként.
HTTP-kérelem fejléce:
Accept: application/json;api-version=1.0
Lekérdezési paraméter:
GET https://dev.azure.com/{organization}/_apis/{area}/{resource}?api-version=1.0
Támogatott verziók
A támogatott verziókról további információt REST API-verziószámozás, támogatott verziókcímű témakörben talál.