Bendrinti naudojant


Portalų žiniatinklio API rašymo, naujinimo ir naikinimo operacijų naudojimas

Pastaba

Nuo 2022 m. spalio 12 d. „Power Apps“ portalai tampa „Power Pages“. Daugiau informacijos: „Microsoft Power Pages“ dabar yra visuotinai prieinama (tinklaraštis)
Greitai perkelsime ir suliesime „Power Apps“ portalų dokumentaciją su „Power Pages“ dokumentacija.

Galite atlikti prieinami žiniatinklio API veiksmai portaluose. Žiniatinklio API operacijas sudaro HTTP užklausos ir atsakai. Šiame straipsnyje pateikiami operacijų, metodų, URI ir JSON rašymo, naujinimo bei naikinimo operacijų pavyzdžiai, kuriuos galite naudoti HTTP užklausose.

Svarbu

  • Kad veiktų ši funkcija, jūsų portalo versija turi būti 9.3.3.x arba naujesnė.

Būtinosios sąlygos

  • Įjunkite žiniatinklio API operacijų lentelę ir lauką. Daugiau informacijos: Saito nustatymai Web API

  • Portalų Žiniatinklio API pasiekia lentelės įrašus ir vadovaujasi lentelės teisėmis, suteiktomis vartotojams per susietus žiniatinklio vaidmenis. Įsitikinkite, kad konfigūruojate tinkamas lentelių teises. Daugiau informacijos: Kurti žiniatinklio vaidmenis

Įrašo kūrimas lentelėje

Pastaba

Nurodant lenteles Dataverse naudojant portalų žiniatinklio AP, Jums reikia naudoti EntitySetName, pavyzdžiui, prieigai prie paskyros lentelės, kodo sintaksė bus naudojama EntitySetName paskyrose.

Pagrindinis kūrimas

Operacija Būdas URI JSON Pavyzdys
Pagrindinis kūrimas SKELBTI [Portal URI]/_api/accounts {"name“:"Sample Account“}

JSON pavyzdys, skirtas susijusių lentelių įrašams kurti per vieną operaciją

Pavyzdžiui, toliau pateiktas užklausos tekstas, užregistruotas Paskyros lentelių rinkinyje, sukurs iš viso keturias naujas lenteles – įskaitant paskyrą – paskyros kūrimo kontekste.

  • Kontaktas yra sukuriamas, nes jis nustatytas kaip vienos vertės naršymo ypatybės primarycontactid objekto ypatybė.
  • Galimybė yra sukuriama, nes ji nustatyta kaip objektas masyve, kuris nustatytas kaip rinkinio verčių naršymo ypatybės opportunity_customer_accounts vertė.
  • Užduotis yra sukuriama, nes ji nustatyta kaip objektas masyve, kuris nustatytas kaip rinkinio verčių naršymo ypatybės Opportunity_Tasks vertė.
{
 "name": "Sample Account",
 "primarycontactid":
 {
     "firstname": "Alton",
     "lastname": "Stott"
 },
 "opportunity_customer_accounts":
 [
  {
      "name": "Opportunity associated to Sample Account",
      "Opportunity_Tasks":
      [
       { "subject": "Task associated to opportunity" }
      ]
  }
 ]
}

Lentelių įrašų susiejimas kūrimo metu

Operacija Būdas URI JSON Pavyzdys
Lentelių įrašų susiejimas kūrimo metu POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

JSON pavyzdys anotacijos per žiniatinklio API sukūrimui

{
    "new_attribute1": "test attribute 1",
    "new_attribute2": "test attribute 2",
    "new_comments": "test comments",
    "new_recordurl": recordURL,
    "new_feedback_Annotations":
        [
            {
                "notetext": "Screenshot attached",
                "subject": "Attachment",
                "filename": file.name,
                "mimetype": file.type,
                "documentbody": base64str,
            }
        ]
    }

documentbody turės priedą, kaip base64 eilutę.

Įrašų naujinimas ir naikinimas naudojant žiniatinklio API

Pagrindinis naujinimas

Operacija Metodas URI JSON Pavyzdys
Pagrindinis naujinimas PATCH [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001) { "name": "Updated Sample Account ", "creditonhold": true, "address1_latitude": 47.639583, "description": "This is the updated description of the sample account", "revenue": 6000000, "accountcategorycode": 2 }

Vienos ypatybės reikšmės naujinimas

Operacija Metodas URI JSON Pavyzdys
Vienos ypatybės reikšmės naujinimas PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Lauko reikšmės naikinimas arba valymas

Operacija Būdas URI
Lauko reikšmės naikinimas arba valymas DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Pagrindinis naikinimas

Operacija Metodas URI
Pagrindinis naikinimas DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Lentelių susiejimas ir atsiejimas naudojant Žiniatinklio API

Nuorodos įtraukimas į rinkinio reikšmių naršymo ypatybę

Operacija Metodas URI JSON Pavyzdys
Nuorodos įtraukimas į rinkinio reikšmių naršymo ypatybę POST [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Nuorodos į lentelę pašalinimas

Operacija Metodas URI
Nuorodos į lentelę pašalinimas DELETE [Portalo URI]/_api/accounts (00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[portal URI]/_api/opportunities (00000000-0000-0000-0000-000000000001)

Nuorodos į vienos reikšmės naršymo ypatybės lentelę pašalinimas

Jei naudojate vienos vertės naršymo ypatybę, pašalinkite $id užklausos eilutės parametrą.

Operacija Metodas URI
Nuorodos į vienos reikšmės naršymo ypatybės lentelę pašalinimas DELETE [Portalo URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Nuorodos keitimas vienos reikšmės naršymo ypatybei

Operacija Metodas URI JSON Pavyzdys
Nuorodos keitimas vienos reikšmės naršymo ypatybei PUT [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Lentelių susiejimas kūrimo metu

Naujas lenteles galima sukurti naudojant ryšius su giliojo įterpimo funkcija.

Lentelių susiejimas naujinimo metu naudojant vienareikšmę naršymo ypatybę

Galite susieti lenteles naujinimo metu naudodami tą patį pranešimą, aprašytą ankstesniame šios temos skyriuje Pagrindinis naujinimas, tačiau turite naudoti komentarą @odata.bind, kad nustatytumėte vienos vertės naršymo ypatybės vertę. Tolesnis pavyzdys pakeičia paskyrą, susietą su galimybe naudojant customerid_account vienos vertės naršymo ypatybę.

Lentelių susiejimas naujinimo metu naudojant vienareikšmę naršymo ypatybę

Operacija Metodas URI JSON Pavyzdys
Lentelių susiejimas naujinimo metu naudojant vienareikšmę naršymo ypatybę PATCH [Portal URI]/_api/opportunities (00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Žiniatinklio API AJAX pavyzdžiai

Šiame pavyzdyje pademonstruota, kaip kurti, naujinti ir naikinti lentelių įrašus naudojant asinchroninę „JavaScript” ir XML („AJAX)”.

Wrapper AJAX funkcija

    (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)

Kurti

    webapi.safeAjax({
        type: "POST",
        url: "/_api/accounts",
        contentType: "application/json",
        data: JSON.stringify({
            "name": "Sample Account"
        }),
        success: function (res, status, xhr) {
      //print id of newly created table record
            console.log("entityID: "+ xhr.getResponseHeader("entityid"))
        }
    });

Atnaujinimas

  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);
    }
  });

Delete

    webapi.safeAjax({
        type: "DELETE",
        url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
        contentType: "application/json",
        success: function (res) {
            console.log(res);
        }
  });

Tolesnis veiksmas

Mokymo priemonė: portalo žiniatinklio API naudojimas

Taip pat žr.

Portalų žiniatinklio API apžvalga
Portalų skaitymo operacijos naudojant žiniatinklio API

Pastaba

Ar galite mums pranešti apie dokumentacijos kalbos nuostatas? Atlikite trumpą apklausą. (atkreipkite dėmesį, kad ši apklausa yra anglų kalba)

Apklausą atliksite per maždaug septynias minutes. Asmeniniai duomenys nėra renkami (privatumo nuostatos).