Uporabite operacije pisanja, posodabljanja in brisanja portalov Web API

V portalih lahko izvajate razpoložljive operacije spletnega API-ja. Postopki spletnega API-ja sestavljajo zahteve in odgovori HTTP. Ta članek ponuja vzorčne operacije pisanja, posodabljanja in brisanja, metode, URI in vzorec JSON, ki jih lahko uporabite v zahtevah HTTP.

Pomembno

  • Za delovanje te funkcije morate imeti portal različice 9.3.3.x ali novejše.

Zahteve

  • Omogoči tabelo in polje za operacije spletnega API-ja. Več informacij: Nastavitve spletnega mesta za spletni API

  • Spletni API portalov dostopa do zapisov tabele in sledi dovoljenjem tabele, ki so dana uporabnikom prek povezanih spletnih vlog. Prepričajte se, da ste konfigurirali ustrezna dovoljenja za tabelo. Več informacij: Ustvarite spletne vloge

Ustvarjanje zapisa v tabeli

Osnovno ustvarjanje

Postopek Metoda URI Vzorec JSON
Osnovno ustvarjanje OBJAVA [Portal URI]/_api/accounts {"name":"Sample Account"}

Na primer, naslednje telo zahteve je objavljeno na račun nabor tabel bo ustvaril skupaj štiri nove tabele – vključno z računom – v kontekstu ustvarjanja računa.

  • Stik je ustvarjen, ker je definiran kot lastnost objekta navigacijske lastnosti z eno vrednostjo primarycontactid.
  • Priložnost je ustvarjena, ker je definirana kot predmet znotraj matrike, ki je nastavljena na vrednost navigacijske lastnosti z vrednostjo zbirke opportunity_customer_accounts.
  • Opravilo je ustvarjeno, ker je definirano kot objekt znotraj matrike, ki je nastavljena na vrednost navigacijske lastnosti z vrednostjo zbirke Opportunity_Tasks.
{
 "name": "Sample Account",
 "primarycontactid":
 {
     "firstname": "Alton",
     "lastname": "Stott"
 },
 "opportunity_customer_accounts":
 [
  {
      "name": "Opportunity associated to Sample Account",
      "Opportunity_Tasks":
      [
       { "subject": "Task associated to opportunity" }
      ]
  }
 ]
}

Pridružitev zapisov tabele ob ustvarjanju

Postopek Metoda URI Vzorec JSON
Pridružitev zapisov tabele ob ustvarjanju POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Vzorec JSON za ustvarjanje pripisa prek spletnega API-ja

{
    "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 bo vseboval prilogo v obliki niza base64.

Posodobitev in izbris zapisov ob uporabi spletnega API-ja

Osnovna posodobitev

Postopek Metoda URI Vzorec JSON
Osnovna posodobitev 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 }

Posodabljanje ene same vrednosti lastnosti

Postopek Način URI Vzorec JSON
Posodabljanje ene same vrednosti lastnosti PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Brisanje ene same vrednosti lastnosti

Postopek Način URI
Brisanje ene same vrednosti lastnosti DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Osnovno brisanje

Postopek Način URI
Osnovno brisanje DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Pridružitev in preklic pridružitve tabel z API-jem spletnega mesta

Dodajanje sklica lastnosti za krmarjenje, ovrednotene z zbirko

Postopek Način URI Vzorec JSON
Dodajanje sklica lastnosti za krmarjenje, ovrednotene z zbirko OBJAVA [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Odstranjevanja sklica na tabelo

Postopek Metoda URI
Odstranjevanja sklica na tabelo DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Odstranjevanje sklic na tabelo za lastnost krmarjenja z enojno vrednostjo

Za navigacijsko lastnost z eno vrednostjo odstranite $id parameter niza poizvedbe.

Postopek Metoda URI
Odstranjevanje sklic na tabelo za lastnost krmarjenja z enojno vrednostjo DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Spreminjanje sklica v lastnosti za krmarjenje z eno vrednostjo

Postopek Način URI Vzorec JSON
Spreminjanje sklica v lastnosti za krmarjenje z eno vrednostjo PUT [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Pridružitev tabel ob ustvarjanju

Ustvarite lahko nove tabele z odnosi z globokim vstavljanjem.

Pridružitev tabel pri posodobitvi z lastnostjo krmarjenja z enojno vrednostjo

Tabele lahko pri posodobitvi povežete z istim sporočilom, opisanim v Osnovna posodobitev prej v tem tema, vendar morate uporabiti@odata.bind pripis za nastavitev vrednosti navigacijske lastnosti z eno vrednostjo. Naslednji primer spremeni račun, povezan s priložnostjo, z uporabocustomerid_account navigacijska lastnost z eno vrednostjo.

Pridružitev tabel pri posodobitvi z lastnostjo krmarjenja z enojno vrednostjo

Postopek Metoda URI Vzorec JSON
Pridružitev tabel pri posodobitvi z lastnostjo krmarjenja z enojno vrednostjo PATCH [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Vzorci AJAX spletnega API-ja

Ta vzorec prikazuje, kako ustvariti, posodobiti in izbrisati zapise tabel z asinhronim JavaScriptom in XML-jem (AJAX).

Funkcija ovoja AJAX

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

Create

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

Posodabljanje

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

Naslednji korak

Vadnica: Uporabite spletni API portala

Glejte tudi

Pregled spletnega API-ja za portale
Portali berejo operacije s spletnim API-jem

Opomba

Ali nam lahko poveste, kateri je vaš prednostni jezik za dokumentacijo? Izpolnite kratko anketo. (upoštevajte, da je v angleščini)

Z anketo boste porabili približno sedem minut. Ne zbiramo nobenih osebnih podatkov (izjava o zasebnosti).