Делите путем


Коришћење операција писања, ажурирања и брисања у Web API-ју за портале

Напомена

Од 12. октобра 2022. Power Apps портали постају Power Pages. Више информација: Услуга Microsoft Power Pages је сада општедоступна (блог)
Ускоро ћемо мигрирати и објединити документацију о Power Apps порталима са документацијом о услузи Power Pages.

Можете обављати доступне операције Web API-ја у порталима. Web API операције састоје се од HTTP захтева и одговора. Овај чланак пружа примере операција писања, ажурирања и брисања, методе, URI-је и JSON узорке које можете користити у HTTP захтевима.

Важно

  • Верзија вашег портала мора бити 9.3.3.x или новија да би ова функција могла да функционише.

Предуслови

  • Омогућите табелу и поље за Web API операције. Још информација: Поставке локације за Web API

  • Web API за портале приступа записима табеле и прати дозволе за табеле дате корисницима путем придружених веб-улога. Уверите се да сте конфигурисали одговарајуће дозволе за табелу. Још информација: Креирање веб-улога

Креирање записа у табели

Напомена

Када се позивате на Dataverse табеле које користе Web API портала, потребно је да користите EntitySetName, на пример, за приступ табели пословни контакт, синтакса кода ће користити EntitySetName пословни контакт.

Основно креирање

Операција Начин URI JSON узорак
Основно креирање Објављена порука [URI портала]/_api/accounts {"name":"Sample Account"}

Пример JSON-а за креирање повезаних записа табеле у једној операцији

Као пример, следеће тело захтева постављено у скуп табела пословног контакта креираће укупно четири нове табеле, укључујући пословни контакт, у контексту креирања пословног контакта.

  • Контакт се креира јер је дефинисан као својство објекта својства навигације са једном вредношћу primarycontactid.
  • Креира се могућност за пословање јер је дефинисана као објекат у оквиру низа који је подешен на вредност својства навигације са збирном вредношћу колекције opportunity_customer_accounts.
  • Креира се задатак јер је дефинисан као објекат у оквиру низа који је подешен на вредност својства навигације са збирном вредношћу колекције, 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" }
      ]
  }
 ]
}

Повезивање записа табеле при креирању

Операција Начин URI JSON узорак
Повезивање записа табеле при креирању POST [URI портала]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Пример JSON за креирање анотације путем Web API-ја

{
    "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 ће садржати прилог као ниску base64.

Ажурирајте и избришите записе помоћу Web API-ја

Основно ажурирање

Операција Метод URI JSON узорак
Основно ажурирање PATCH [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 }

Ажурирање јединствене вредности својства

Операција Метод URI JSON узорак
Ажурирање јединствене вредности својства PUT [URI портала]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Брисање или брисање вредности поља

Операција Начин URI
Брисање или брисање вредности поља DELETE [URI портала]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Основно брисање

Операција Метод URI
Основно брисање DELETE [URI портала]/_api/accounts(00000000-0000-0000-0000-000000000001)

Придруживање и раздруживање табела помоћу Web API-ја

Додајте референцу на својство навигације са вредностима из колекције

Операција Метод URI JSON узорак
Додајте референцу на својство навигације са вредностима из колекције POST [URI портала]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Уклањање референце на табелу

Операција Метод URI
Уклањање референце на табелу DELETE [URI портала]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Уклоните референцу на табелу за својство навигације са једном вредношћу

За својство навигације са једном вредношћу уклоните параметар ниске упита $id.

Операција Метод URI
Уклоните референцу на табелу за својство навигације са једном вредношћу DELETE [URI портала]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Промена референце у својству навигације са једном вредношћу

Операција Метод URI JSON узорак
Промена референце у својству навигације са једном вредношћу PUT [URI портала]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Повезивање табела при креирању

Нове табеле се могу креирати коришћењем релација помоћу дубоког уметања.

Повезивање табела при ажурирању помоћу својства навигације са једном вредношћу

Табеле при ажурирању можете да повежете користећи исту поруку описану у одељку Основно ажурирање, раније у овој теми, али морате користити анотацију @odata.bind за подешавање вредности својства навигације са једном вредношћу. Следећи пример мења пословни контакт који је повезан са могућношћу за пословање коришћењем својства навигације са једном вредношћу customerid_account.

Повезивање табела при ажурирању помоћу својства навигације са једном вредношћу

Операција Метод URI JSON узорак
Повезивање табела при ажурирању помоћу својства навигације са једном вредношћу PATCH [URI портала]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Web API AJAX примери

Овај пример показује како да креирате, ажурирате и избришете записе табеле користећи асинхрони JavaScript и XML (AJAX).

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)

Креирај

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

Ажурирање

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

Избриши

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

Следећи корак

Водич: Коришћење Web API-ја за портале

Погледајте и

Преглед Web API-ја за портале
Операције читања портала помоћу Web API-ја

Напомена

Можете ли нам рећи о својим жељеним поставкама језика у документацији? Испуните кратку анкету. (имајте на уму да је ова анкета на енглеском језику)

Анкета ће трајати око седам минута. Не прикупљају се лични подаци (изјава о приватности).