Порталдардағы веб-API арқылы жазу, жаңарту және жою операцияларын пайдалану

Ескерім

2022 жылдың 12 қазанынан бастап күшіне енеді, Power Apps порталдары — Power Pages. Қосымша ақпарат: Microsoft Power Pages енді жалпыға қолжетімді (блог)
Жақында Power Apps порталдары құжаттамасын Power Pages құжаттамасымен көшіреміз және біріктіреміз.

Порталдарда қолжетімді веб-API әрекеттерін орындауға болады. Веб-API операциялары HTTP сұраулары мен жауаптарынан тұрады. Бұл мақалада HTTP сұрауларында қолдануға болатын үлгілік жазу, жаңарту және жою операциялары, URI және JSON үлгісі көрсетілген.

Маңызды

  • Бұл мүмкіндіктің жұмыс істеуі үшін сіздің порталыңыздың нұсқасы 9.3.3.x немесе одан кейінгі нұсқа болуы керек.

Алғышарттар

  • Веб-API әрекеттері үшін кесте мен өрісті қосыңыз. Қосымша ақпарат: Веб-API сайт параметрлері

  • Порталдарың веб‑API интерфейсі кесте жазбаларына қатынасады және пайдаланушыларға байланысты веб-рөлдер арқылы берілген кесте рұқсаттарын орындайды. Дұрыс кесте рұқсаттарын конфигурациялағаныңызға көз жеткізіңіз. Қосымша ақпарат: Веб-рөлдер жасау

Кестеде жазба жасау

Ескерім

Порталдардың Веб-API интерфейсін пайдаланатын Dataverse кестелері үшін EntitySetName параметрін пайдалануыңыз қажет, мысалы, тіркелгі кестесіне қатынасу үшін код синтаксисі тіркелгілер ішіндегі EntitySetName параметрін пайдаланады.

Негізгі жасау

Операция Әдіс URI JSON үлгісі
Негізгі жасау Жарияланым [Portal URI]/_api/accounts {"атау":"тіркелгі үлгісі"}

Бір операцияда қатысты кесте жазбаларын жасауға арналған 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 [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Веб API арқылы аннотация жасауға арналған JSON үлгісі

{
    "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 [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 }

Бір сипат мәнін жаңартыңыз

Әрекет Әдіс URI JSON үлгісі
Бір сипат мәнін жаңартыңыз ҚОЙЫҢЫЗ [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Өріс мәнін жою немесе өшіру

Операция Әдіс URI
Өріс мәнін жою немесе өшіру DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Негізгі жою

Әрекет Әдіс URI
Негізгі жою DELETE пернесі [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Кестелерді веб‑API интерфейсін пайдалану арқылы байланыстыру және ажырату

Коллекциямен бағаланатын бар навигация сипатына сілтеме қосыңыз

Әрекет Әдіс URI JSON үлгісі
Коллекциямен бағаланатын бар навигация сипатына сілтеме қосыңыз Жарияланым [Portal 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 [Portal 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 [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Сілтемені бір мәнді навигация сипатында өзгертіңіз

Әрекет Әдіс URI JSON үлгісі
Сілтемені бір мәнді навигация сипатында өзгертіңіз ҚОЙЫҢЫЗ [Portal 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 [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Веб API AJAX үлгілері

Бұл үлгі асинхронды JavaScript және XML (AJAX) функциясын пайдалану арқылы кесте жазбаларын жасау, жаңарту және жою әдісін көрсетеді.

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

Update

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

Келесі қадам

Оқулық: порталдың веб-API интерфейсін пайдалану

Сонымен қатар қараңыз

Порталдар веб API шолуы
Порталдардағы веб-API арқылы оқу операциялары

Ескерім

Сіз құжат тіліңіздің артықшылықтары туралы айта аласыз ба? Қысқа сауалнамаға қатысыңыз. (бұл сауалнама ағылшын тілінде екеніне назар аударыңыз)

Сауалнама шамамен жеті минут уақытыңызды алады. Жеке деректер жиналмайды (құпиялылық туралы мәлімдеме).