Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Interakcia s webovým rozhraním API zahŕňa zostavenie požiadaviek HTTP s požadovanými hlavičkami a spracovanie odpovedí HTTP vrátane akýchkoľvek chýb.
Dôležité
- Aby táto funkcia fungovala, verzia vášho portálu musí byť 9.3.3.x alebo novšia.
URL a verzie webového rozhrania API
Zostavte adresu URL webového rozhrania API pomocou formátu v nasledujúcej tabuľke.
| Časť | Popis |
|---|---|
| Protokol | https:// |
| Základná URL adresa | <URL portálu> |
| Cesta webového rozhrania API | _rozhranie api |
| Prostriedok | Logický názov tabuľky, ktorú chcete použiť |
Tento formát použite napríklad pri postúpení prípadu:
https://contoso.powerappsportals.com/_api/case
Všetky zdroje webového rozhrania API sa budú riadiť príslušnými povoleniami tabuľky v kontexte s webovými rolami.
Metódy HTTP
Požiadavky HTTP môžu používať rôzne druhy metód. Webové rozhranie API portálov však podporuje iba metódy v nasledujúcej tabuľke:
| Metóda | Využitie |
|---|---|
| Získať | Používa sa pri získavaní údajov z tabuliek. |
| Potom | Použiť pri vytváraní záznamov. |
| Oprava | Použite pri aktualizácii tabuliek alebo pri operáciách upsert. |
| Delete | Používa sa pri odstraňovaní záznamov alebo hodnôt jednotlivých polí záznamov. |
| Put | Použitie v obmedzených situáciách na aktualizáciu jednotlivých polí záznamov. |
Hlavičky protokolu HTTP
Webové rozhranie API podporuje iba JSON. Každá hlavička HTTP musí obsahovať:
- Hodnota hlavičky Súhlasiťaplikácie/json aj v prípade, ak sa neočakáva žiadny text odpovede.
- Ak žiadosť obsahuje v tele žiadosti údaje JSON, musíte uviesť hlavičku Content-Type s hodnotou
application/json.
Aktuálna verzia OData je 4.0, ale budúce verzie môžu umožňovať nové funkcie. Pomocou nasledujúcej syntaxe zaistíte, že o verzii OData, ktorá sa v budúcnosti použije na váš kód, nebudú nejasnosti.
Syntax
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Príklad: Funkcia Wrapper AJAX pre token CSRF
(function(webapi, $){
function safeAjax(ajaxOptions) {
var deferredAjax = $.Deferred();
shell.getTokenDeferred().done(function (token) {
// add headers for ajax
if (!ajaxOptions.headers) {
$.extend(ajaxOptions, {
headers: {
"__RequestVerificationToken": token
}
});
} else {
ajaxOptions.headers["__RequestVerificationToken"] = token;
}
$.ajax(ajaxOptions)
.done(function(data, textStatus, jqXHR) {
validateLoginSession(data, textStatus, jqXHR, deferredAjax.resolve);
}).fail(deferredAjax.reject); //ajax
}).fail(function () {
deferredAjax.rejectWith(this, arguments); // on token failure, pass the token ajax and args
});
return deferredAjax.promise();
}
webapi.safeAjax = safeAjax;
})(window.webapi = window.webapi || {}, jQuery)
Príklad: Získanie údajov tabuľky
webapi.safeAjax({
type: "GET",
url: "/_api/contacts?$select=firstname,lastname",
contentType: "application/json",
success: function (res) {
console.log(res);
}
});
Príklad: Vytvorenie údajov tabuľky
webapi.safeAjax({
type: "POST",
url: "/_api/accounts",
contentType: "application/json",
data: JSON.stringify({
"name": "Sample Account"
}),
success: function (res, status, xhr) {
console.log("entityID: "+ xhr.getResponseHeader("entityid"))
}
});
Príklad: Aktualizácia údajov tabuľky
webapi.safeAjax({
type: "PATCH",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
contentType: "application/json",
data: JSON.stringify({
"name": "Sample Account - Updated"
}),
success: function (res) {
console.log(res);
}
});
Príklad: Odstránenie údajov tabuľky
webapi.safeAjax({
type: "DELETE",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
contentType: "application/json",
success: function (res) {
console.log(res);
}
});
Identifikujte stavové kódy
Každá odpoveď na požiadavku HTTP obsahuje stavový kód. Stavové kódy vrátené webovým rozhraním API portálov zahŕňajú nasledujúce:
| Kód | Popis | Type |
|---|---|---|
| 200 OK | Očakávajte túto odpoveď, keď vaša operácia vráti údaje v texte odpovede. | Úspech |
| 204 No Content | Očakávajte túto odpoveď, keď vaša operácia bude úspešná, no nevráti údaje v texte odpovede. | Úspech |
| 403 Zakázané | Očakávajte túto odpoveď v prípade nasledujúcich typov chýb:
|
Chyba klienta |
| 401 Neoprávnené | Očakávajte túto odpoveď v prípade nasledujúcich typov chýb:
|
Chyba klienta |
| 413 Payload Too Large | Očakávajte túto odpoveď, keď je dĺžka žiadosti príliš veľká. | Chyba klienta |
| 400 BadRequest | Očakávajte túto odpoveď, keď je argument neplatný. InvalidAttribute |
Chyba klienta |
| 404 Not Found | Očakávajte túto odpoveď, keď zdroj neexistuje. Tabuľka nie je sprístupnená pre webové rozhranie API. |
Chyba klienta |
| 405 Method Not Allowed | Táto chyba sa vyskytuje pre nesprávne kombinácie metód a prostriedkov. Napríklad nemôžete použiť DELETE ani PATCH na súbor tabuliek. K tejto situácii môže dôjsť z dôvodu nasledujúcich typov chýb:
|
Chyba klienta |
| 501 Not Implemented | Očakávajte túto odpoveď, keď nie je implementovaná požadovaná operácia. | Chyba servera |
| 503 Služba je nedostupná | Očakávajte túto odpoveď, keď služba webového rozhrania API nie je k dispozícii. | Chyba servera |
Analyzujte chyby z odpovede
Zoberme si nasledujúci príklad odpovede HTTP, ktorá stále obsahuje vnútornú chybu:
{
"error":{
"code": "This code is not related to the http status code and is frequently empty",
"message": "A message describing the error",
"cdscode": "Dataverse error code",
"innererror": {
"code": "800xxxx",
"message": "A message describing the error. This is frequently the same as the outer message.."
}
}
}
Kódy chýb
Kódy chýb sa zobrazujú v hexadecimálnom formáte pre všetky spracované scenáre. V nasledujúcej tabuľke je uvedený každý chybový kód s príslušným menom a správou.
| Kód chyby | Názov chyby | Chybové hlásenie |
|---|---|---|
| 900400FF | NoAttributesForTableCreate | Žiadne atribúty pre akciu Vytvoriť tabuľku. |
| 90040100 | InvalidAttribute | Nemožno nájsť atribút {0} pre tabuľku {1}. |
| 90040101 | AttributePermissionIsMissing | Atribút {0} v tabuľke {1} nie je povolený pre webové rozhranie API. |
| 90040102 | TablePermissionWriteIsMissingDuringUpdate | Nemáte povolenie na aktualizáciu entity {0}. |
| 90040103 | TablePermissionCreateIsMissing | Nemáte povolenie na vytvorenie entity {0}. |
| 90040104 | TablePermissionDeleteIsMissing | Nemáte povolenie na odstránenie entity {0). |
| 90040105 | TablePermissionAppendIsMissngDuringAssociationChange | Nemáte povolenie na priradenie ani zrušenie priradenia tabuľky {0} s {1}. |
| 90040106 | TablePermissionAppendToIsMissingDuringAssociationChange | Nemáte povolenie na priradenie ani zrušenie priradenia tabuľky {1} s {0} |
| 90040107 | HttpAntiForgeryException | Token súboru cookie a token poľa formulára proti falšovaniu sa nezhodujú. |
| 90040109 | MissingPortalSessionCookie | Do metódy hádzania bol odovzdaný neplatný token relácie. |
| 9004010C | ResourceDoesNotExists | Pre segment {0} sa nenašiel zdroj. |
| 9004010D | CDSError | Vyskytla sa chyba služby CDS. |
Odpoveď na nespracované chyby pomocou stavového kódu HTTP 500 vráti chybu – „Pri spracovaní žiadosti sa vyskytla neočakávaná chyba”.