A REST API-k használatának első lépései
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.
Az API-k egy gyakori mintát követnek, például az alábbi példában.
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 instance
esetében ez és collection
így is van dev.azure.com/{organization}
DefaultCollection
, így a minta az alábbi 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 EGY HTTP-fejlécen keresztül szeretné megadni a személyes hozzáférési jogkivonatot (PAT), először base64-sztringgé kell konvertálnia. Az alábbi példa bemutatja, hogyan konvertálható Base64-be C# használatával. Az eredményül kapott sztring ezután megadható HTTP-fejlécként a formátumban.
Authorization: Basic BASE64PATSTRING
Az alábbi példa a C#-ot mutatja be a HttpClient osztály használatával.
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());
}
}
A legtöbb mintánk PAT-t használ, mivel ez egy kompakt példa a szolgáltatással való hitelesítésre. Az Azure DevOps Serviceshez azonban különböző hitelesítési mechanizmusok érhetők el, például a Microsoft Authentication Library (MSAL), az OAuth és a munkamenet-jogkivonatok esetében. További információ: Hitelesítési útmutató, amely segít meghatározni, hogy melyik felel meg a legjobban a forgatókönyvnek.
Azure DevOps Server
Az Azure DevOps Server instance
esetében a .{server:port}
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, amelyekhez PAT-t kell létrehozni.
Válaszok
Ehhez hasonló választ kell kapnia.
{
"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
}
A válasz a JSON, amely általában az, amit a REST API-kból kap vissza, bár van néhány kivétel, például a Git-blobok.
Most áttekintheti az adott API-területeket , például a munkaelemek nyomon követését 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-parancsok
Parancs | Használt... |
---|---|
KAP | Erőforrás vagy erőforráslista lekérése |
POST | Erőforrás létrehozása, Erőforrások listájának lekérése speciálisabb lekérdezéssel |
PUT | 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örlés... | 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 igét egy fejléccel a metódus felülbírálásához.
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álasztö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álasztörzs. 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 sikertelen. 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 lekéréses kérelmet próbál elküldeni, és már van lekéréses kérelem a véglegesítésekhez, 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 a nem tartományból dev.azure.com/*
kiszolgált JavaScript-kódot, hogy 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 myPatToken
személyes hozzáférési jogkivonatra)
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ányelvek
- Adja meg az API-verziót minden kéréssel (kötelező).
- 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átum használatával:
1.0-preview.1
,1.0-preview.2
. Miután az API megjelent (például 1.0 verziószámmal), az előzetes verziója (1.0-preview) elavulttá válik, és 12 hét elteltével inaktiválható. - Frissítsen az API kiadott verziójára. Az előzetes verziójú API inaktiválása után a verziót meghatározó
-preview
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 a REST API verziószámozása és a támogatott verziók című témakörben talál.