HTTP-pyyntöjen laatiminen ja virheiden käsitteleminen portaalien verkko-ohjelmointirajapinnassa
Huomautus
Power Apps -portaaleja kutsutaan 12. lokakuuta 2022 alkaen nimellä Power Pages. Lisätietoja: Microsoft Power Pages on nyt yleisesti saatavilla (blogi)
Siirrämme ja yhdistämme Power Apps -portaalien dokumentaation pian Power Pagesin dokumentaatioon.
Verkko-ohjelmointirajapinnan käyttäminen sisältää vaaditut ylätunnisteet sisältävien HTTP-pyyntöjen laatimisen ja HTTP-vastausten, myös mahdollisten virheiden, käsittelemisen.
Tärkeä
- Portaalin version on oltava 9.3.3.x tai uudempi versio, jotta toiminto toimii oikein.
Verkko-ohjelmointirajapinnan URL-osoite ja versionhallinta
Laadi verkko-ohjelmointirajapinnan URL-osoite käyttämällä seuraavassa taulukossa olevaa muotoa.
Osittain | Description |
---|---|
Protokolla | https:// |
URL-perusosoite | <portal URL> |
Verkko-ohjelmointirajapinnan polku | _api |
Resurssi | Käytettävän taulukon looginen nimi |
Käytä esimerkiksi seuraavaa muotoa palvelupyyntöön viitatessa:
https://contoso.powerappsportals.com/_api/case
Kaikki verkko-ohjelmointirajapintaresurssit noudattavat soveltuvia portaalin taulukko-oikeuksia verkkoroolien yhteydessä.
HTTP-menetelmät
HTTP-pyynnöt voivat käyttää erilaisia menetelmiä. Portaalien verkko-ohjelmointirajapinta tukee vain seuraavassa taulukossa olevia menetelmiä:
Method | Käyttö |
---|---|
Get | Käytä noudettaessa tietoja taulukoista. |
Julkaise | Käytetään tietueita luotaessa. |
Ohjelmakorjaus | Käytetään taulukoita päivitettäessä tai upsert-toimintoja tehtäessä. |
Delete | Käytetään poistettaessa tietueita tai tietueiden yksittäisten kenttien arvoja. |
Put | Käytetään rajoitetuissa tilanteissa tietueiden yksittäisten kenttien päivittämiseen. |
HTTP-otsikot
Verkko-ohjelmointirajapinta tukee vain JSON-muotoa. Jokaisessa HTTP-ylätunnisteessa on oltava seuraavat:
- Hyväksy-ylätunnisteen application/json-arvo, vaikka vastaustekstiä ei odoteta.
- Jos pyyntö sisältää JSON-tietoja pyyntötekstissä, myös Sisältötyyppi-ylätunnista, jonka arvo on
application/json
, on sisällytettävä.
Nykyinen OData-versio on 4,0, mutta tulevat versiot voivat sallia uusia toimintoja. Seuraavan syntaksin avulla voit varmistaa, että koodiin tulevaisuudessa sovellettavassa OData-versiossa ei ole epäselvyyttä:
Syntaksi
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Esimerkki: CSRF-tunnuksen paketoijan AJAX-funktio
(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)
Esimerkki: Nouda taulukon tiedot
webapi.safeAjax({
type: "GET",
url: "/_api/contacts?$select=firstname,lastname",
contentType: "application/json",
success: function (res) {
console.log(res);
}
});
Esimerkki: taulukon tietojen luominen
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"))
}
});
Esimerkki: taulukon tietojen päivittäminen
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);
}
});
Esimerkki: taulukon tietojen poistaminen
webapi.safeAjax({
type: "DELETE",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
contentType: "application/json",
success: function (res) {
console.log(res);
}
});
Tilakoodien määrittäminen
Jokaisessa HTTP-pyynnön vastauksessa on tilakoodi. Seuraavat ovat portaalien verkko-ohjelmointirajapinnan palauttamia tilakoodeja:
Koodi | Description | Type |
---|---|---|
200 OK | Odota tätä vastausta, kun toiminto palauttaa tietoja vastaustekstissä. | Onnistui |
204 Ei sisältöä | Odota tätä vastausta, kun toiminto onnistuu mutta ei palauta tietoja vastaustekstissä. | Onnistui |
403 Käyttö estetty | Odota tätä vastausta seuraavissa virhetyypeissä:
|
Asiakasvirhe |
401 Ei sallittu | Odota tätä vastausta seuraavissa virhetyypeissä:
|
Asiakasvirhe |
413 Tietojen koko on liian suuri | Odota tätä vastaus, kun pyyntö on liian pitkä. | Asiakasvirhe |
400 BadRequest | Odota tätä vastausta, kun argumentti on virheellinen. InvalidAttribute |
Asiakasvirhe |
404 Ei löytynyt | Odota tätä vastausta, kun resurssia ei ole. Taulukko ei ole näkyvissä verkko-ohjelmointirajapinnassa. |
Asiakasvirhe |
405 Menetelmä ei sallita | Tämä virhe esiintyy, kun menetelmä- ja resurssiyhdistelmä on virheellinen. Esimerkiksi DELETE- tai PATCH-komentoa ei voi käyttää taulukkokokoelmassa. Tämä tilanne voi esiintyä seuraavissa virhetyypeissä:
|
Asiakasvirhe |
501 Ei toteutettu | Odota tätä vastausta, kun jotain pyydettyä toimintoa ei voi toteuttaa. | Palvelinvirhe |
503 Palvelu ei ole käytettävissä | Odota tätä vastausta, kun verkko-ohjelmointirajapintapalvelu ei ole käytettävissä. | Palvelinvirhe |
Virheiden jäsentäminen vastauksesta
Pohdi seuraavia HTTP-esimerkkivastauksia, joissa on edelleen sisäinen virhe:
{
"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.."
}
}
}
Virhekoodit
Virhekoodit näkyvät heksadesimaalimuodossa kaikissa käsitellyissä skenaarioissa. Seuraavassa taulukossa on luettelo jokaisesta virhekoodista sekä sen nimestä ja siihen liittyvästä sanomasta.
Virhekoodi | Virheen nimi | Virhesanoma |
---|---|---|
900400FF | NoAttributesForTableCreate | Ei määritteitä Luo taulukko -toiminnolle. |
90040100 | InvalidAttribute | Määritettä {0} ei löytynyt taulukolle {1}. |
90040101 | AttributePermissionIsMissing | Taulukon {1} määrite {0} ei ole käytössä www-ohjelmointirajapinnassa. |
90040102 | TablePermissionWriteIsMissingDuringUpdate | Sinulla ei ole entiteetin {0} päivitysoikeutta. |
90040103 | TablePermissionCreateIsMissing | Sinulla ei ole entiteetin {0} luontioikeutta. |
90040104 | TablePermissionDeleteIsMissing | Sinulla ei ole entiteetin {0) poisto-oikeutta. |
90040105 | TablePermissionAppendIsMissngDuringAssociationChange | Oikeutta taulukon {0} liittämiseen kohteeseen {1} tai liitoksen poistamiseen ei ole. |
90040106 | TablePermissionAppendToIsMissingDuringAssociationChange | Oikeutta taulukon {1} liittämiseen kohteeseen {0} tai liitoksen poistamiseen ei ole. |
90040107 | HttpAntiForgeryException | Väärennyksen estävä evästetunnus ja lomakekentän tunnus eivät vastaa toisiaan. |
90040109 | MissingPortalSessionCookie | Virheellinen istuntotunnus välitettiin palautusmenetelmään. |
9004010C | ResourceDoesNotExists | Segmentille {0} ei löydy resurssia. |
9004010D | CDSError | Tapahtui CDS-virhe. |
Käsittelemättömien virheiden, joissa on HTTP-tilakoodi 500, vastaus palauttaa virheen Odottamaton virhe pyyntöä käsiteltäessä.
Katso myös
Portaalien verkko-ohjelmointirajapinnan yleiskuvausPortaalien Web API -kirjoitus-, päivitys- ja poistotoimintojen käyttäminenPortaalien lukutoiminnot Web-ohjelmointirajapinnan avulla
Huomautus
Voitko kertoa meille dokumentaatiota koskevan kielimäärityksesi? Vastaa lyhyeen kyselyyn. (Huomaa, että tämä kysely on englanninkielinen.)
Kyselyyn vastaaminen kestää noin seitsemän minuuttia. Henkilökohtaisia tietoja ei kerätä (tietosuojatiedot).
Palaute
https://aka.ms/ContentUserFeedback.
Tulossa pian: Vuoden 2024 aikana poistamme asteittain GitHub Issuesin käytöstä sisällön palautemekanismina ja korvaamme sen uudella palautejärjestelmällä. Lisätietoja on täällä:Lähetä ja näytä palaute kohteelle