Comparteix a través de


Ús de les operacions d'escriptura, actualització i supressió a l'API web dels portals

Nota

Des del 12 d'octubre de 2022, els portals del Power Apps són Power Pages. Més informació: Microsoft Power Pages ara està disponible de manera general (bloc)
Ben aviat migrarem i combinarem la documentació dels portals del Power Apps amb la documentació del Power Pages.

Podeu dur a terme operacions API web disponibles als portals. Les operacions de l'API web consisteixen en sol·licituds i respostes HTTP. En aquest article s'ofereixen operacions d'escriptura, actualització i supressió, mètodes, URI i JSON d'exemple que podeu utilitzar a les sol·licituds HTTP.

Important

  • La versió del portal ha de ser 9.3.3.x o posterior per poder treballar amb aquesta característica.

Requisits previs

  • Habilitar la taula i el camp per a les operacions de l'API web. Més informació: Configuració del lloc per a l'API web

  • L'API web dels portals accedeix als registres de taula i segueix els permisos de taula atorgats als usuaris mitjançant les funcions web associades. Assegureu-vos de configurar els permisos de taula correctes. Més informació: Crear funcions web

Crear un registre en una taula

Nota

Quan feu referència a taules del Dataverse que utilitzen l'API web de portals, heu d'utilitzar EntitySetName; per exemple, per accedir a la taula compte, la sintaxi de codi utilitzarà l'EntitySetName comptes.

Creació bàsica

Operació Mètode URI Exemple de JSON
Creació bàsica Publica [URI del portal]/_api/accounts {"name":"Compte d'exemple"}

JSON d'exemple per crear registres de taula relacionats en una operació

Per exemple, el cos de sol·licitud següent publicat al conjunt de taules Comptes crearà un total de quatre taules noves, incloent-hi la de comptes, en el context de la creació del compte.

  • Un contacte es crea perquè s'ha definit com una propietat d'objecte de la propietat de navegació d'un sol valor primarycontactid.
  • Una oportunitat es crea perquè està definida com a objecte dins d'una matriu definida com a valor d'una propietat de navegació de col·lecció valuosa opportunity_customer_accounts.
  • Una tasca es crea perquè està definida com a objecte dins d'una matriu definida com a valor d'una propietat de navegació de col·lecció valuosa 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" }
      ]
  }
 ]
}

Associar els registres de taula en crear-los

Operació Mètode URI Exemple de JSON
Associar els registres de taula en crear-los POST [URI del portal]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Exemple JSON per crear una anotació a través de l'API web

{
    "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 contindrà el fitxer adjunt com a cadena Base64.

Actualitzar i suprimir registres mitjançant l'API web

Actualització bàsica

Operació Mètode URI Exemple de JSON
Actualització bàsica PATCH [URI del portal]/_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 }

Actualitzar el valor d'una única propietat

Operació Mètode URI Exemple de JSON
Actualitzar el valor d'una única propietat PUT [URI del portal]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Suprimir o esborrar un valor de camp

Operació Mètode URI
Suprimir o esborrar un valor de camp DELETE [URI del portal]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Supressió bàsica

Operació Mètode URI
Supressió bàsica Supr [URI del portal]/_api/accounts(00000000-0000-0000-0000-000000000001)

Associar i anul·lar l'associació de taules amb l'API web

Afegir una referència a una propietat de navegació de valor de col·lecció

Operació Mètode URI Exemple de JSON
Afegir una referència a una propietat de navegació de valor de col·lecció Publica [URI del portal]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Suprimir una referència a una taula

Operació Mètode URI
Suprimir una referència a una taula DELETE [URI del portal]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[URI del portal]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Suprimir una referència a una taula per a una propietat de navegació d'un valor

Per a una propietat de navegació de valor únic, suprimiu el paràmetre de cadena de consulta $id.

Operació Mètode URI
Suprimir una referència a una taula per a una propietat de navegació d'un valor DELETE [URI del portal]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Canviar la referència d'una propietat de navegació de valor únic

Operació Mètode URI Exemple de JSON
Canviar la referència d'una propietat de navegació de valor únic PUT [URI del portal]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Associar taules en crear-les

Les taules noves es poden crear amb relacions mitjançant la inserció profunda.

Associar les taules en actualitzar-les mitjançant una propietat de navegació d'un valor

Podeu associar les taules en actualitzar-les utilitzant el mateix missatge que es descriu a l'actualització bàsica, més aviat en aquest tema, però heu d'utilitzar l'anotació @odata.bind per definir el valor d'una propietat de navegació d'un sol valor. L'exemple següent canvia el compte associat a una oportunitat mitjançant la propietat de navegació d'un sol valor customerid_account.

Associar les taules en actualitzar-les mitjançant una propietat de navegació d'un valor

Operació Mètode URI Exemple de JSON
Associar les taules en actualitzar-les mitjançant una propietat de navegació d'un valor PATCH [URI del portal]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Exemples d'AJAX de l'API web

Aquest exemple mostra com es creen, actualitzen i suprimeixen registres de taula mitjançant JavaScript asíncron i XML (AJAX).

Funció AJAX contenidora

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

Creació

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

Pas següent

Tutorial: Utilitzar l'API web del portal

Consulteu també

Informació general sobre l'API web de portals
Operacions de lectura en portals mitjançant l'API web

Nota

Ens podeu dir quines són les vostres preferències d'idioma per a la documentació? Responeu una breu enquesta. (tingueu en compte que l'idioma de l'enquesta és l'anglès)

Trigareu uns set minuts a completar l'enquesta. No es recopilen dades personals (declaració de privadesa).