Korzystaj z operacji zapisu, aktualizacji i usuwania portali Web API

Uwaga

12 października 2022 r. funkcja Portale usługi Power Apps została przekształcona w usługę Power Pages. Więcej informacji: Usługa Microsoft Power Pages jest teraz ogólnie dostępna (blog)
Wkrótce zmigrujemy i scalimy dokumentację funkcji Portale usługi Power Apps z dokumentacją usługi Power Pages.

Można wykonać Dostępne operacje interfejsu API sieci Web w portalach. Operacje interfejsu API sieci Web składają się z żądań i odpowiedzi HTTP. Ten artykuł zawiera przykładowe operacje zapisu, aktualizacji i usuwania, metody, identyfikator URI i przykładowy kod JSON, których można używać w żądaniach HTTP.

Ważne

  • Aby ta funkcja działała, trzeba mieć wersję portali 9.3.3.x lub nowszą.

Wymagania wstępne

  • Włącz tabelę i pole dla operacji interfejsu API sieci Web. Więcej informacji: Ustawienia witryny dla internetowego interfejsu API

  • Internetowy interfejs API portali uzyskuje dostęp do rekordów tabel i postępuje zgodnie z uprawnieniami do tabel przyznanymi użytkownikom za pośrednictwem skojarzonych ról internetowych. Upewnij się, że skonfigurowano poprawne uprawnienia do tabeli. Więcej informacji: Tworzenie ról internetowych

Utwórz rekord w tabeli

Uwaga

Odwołując się do tabel Dataverse za pomocą internetowego interfejsu API portali, musisz użyć EntitySetName, na przykład, aby uzyskać dostęp do tabeli konto, składnia kodu będzie używała nazwy EntitySetName z kont.

Tworzenie podstawowe

Działanie Metoda Identyfikator URI Przykład JSON:
Tworzenie podstawowe PUBLIKUJ [Portal URI]/_api/accounts {"name":"Sample Account"}

Przykładowy kod JSON tworzenia rekordów tabeli pokrewnej w jednej operacji

Na przykład następująca treść żądania opublikowana w zestawie tabel Konta utworzy w sumie cztery nowe tabele — w tym konto — w kontekście tworzenia konta.

  • Kontakt jest tworzony, ponieważ jest zdefiniowany jako właściwość obiektu jednowartościowej właściwości nawigacji primarycontactid.
  • Szansa sprzedaży jest tworzona, ponieważ jest zdefiniowana jako obiekt w tablicy, która jest ustawiona na wartość właściwości nawigacji o wartości kolekcji opportunity_customer_accounts.
  • Zadanie jest tworzone, ponieważ jest zdefiniowane jako obiekt w tablicy, która jest ustawiona na wartość właściwości nawigacji o wartości kolekcji 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" }
      ]
  }
 ]
}

Kojarzenie rekordów tabeli przy tworzeniu

Operation Method Identyfikator URI Przykład JSON:
Kojarzenie rekordów tabeli przy tworzeniu POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Przykładowy kod JSON polegający na utworzeniu adnotacji za pośrednictwem internetowego interfejsu 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 będzie zawierać załącznik w postaci ciągu Base64.

Aktualizowanie i usuwanie rekordów za pomocą interfejsu API sieci Web

Podstawowa aktualizacja

Operation Metoda Identyfikator URI Przykład JSON:
Podstawowa aktualizacja POPRAWKA [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 }

Aktualizowanie pojedynczej wartości właściwości

Operacja Metoda Identyfikator URI Przykład JSON:
Aktualizowanie pojedynczej wartości właściwości ODŁÓŻ [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Usuwanie lub usuwanie wartości pola

Działanie Method Identyfikator URI
Usuwanie lub usuwanie wartości pola DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Usuwanie podstawowe

Operacja Metoda Identyfikator URI
Usuwanie podstawowe DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Skojarz i rozłącz tabele za pomocą internetowego interfejsu API

Dodaj odwołanie do właściwości nawigacji o wartości kolekcji

Operacja Metoda Identyfikator URI Przykład JSON:
Dodaj odwołanie do właściwości nawigacji o wartości kolekcji WPIS [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Usuwanie odwołania do tabeli

Operacja Metoda Identyfikator URI
Usuwanie odwołania do tabeli DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Usuwanie odwołania do tabeli dla jedno valued właściwości nawigacji

Aby uzyskać jednowartościową właściwość nawigacji, Usuń parametr ciągu zapytania $id.

Operacja Metoda Identyfikator URI
Usuwanie odwołania do tabeli dla jedno valued właściwości nawigacji DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Zmiana odwołania w jednowartościowej właściwości nawigacji

Operacja Metoda Identyfikator URI Przykład JSON:
Zmiana odwołania w jednowartościowej właściwości nawigacji ODŁÓŻ [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Kojarzenie tabeli przy tworzeniu

Korzystając z funkcji deep insert, można relacje nowe tabele.

Kojarzenie tabel podczas aktualizacji przy użyciu jedno valued właściwości nawigacji

Tabele dotyczące aktualizacji można skojarzyć, korzystając z tego samego komunikatu opisanego w aktualizacji podstawowej — wcześniej w tym temat, ale do ustawienia wartości jednowartościowej właściwości nawigacji należy użyć adnotacji @odata.bind. Poniższy przykład zmienia konto skojarzone z szansą sprzedaży przy użyciu jednowartościowej właściwości nawigacji customerid_account.

Kojarzenie tabel podczas aktualizacji przy użyciu jedno valued właściwości nawigacji

Operacja Metoda Identyfikator URI Przykład JSON:
Kojarzenie tabel podczas aktualizacji przy użyciu jedno valued właściwości nawigacji PATCH [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Przykłady AJAX internetowego interfejsu API

W tym przykładzie pokazano, jak tworzyć, aktualizować i usuwać rekordy tabel za pomocą języka JavaScript asynchronicznego i języka XML (XML).

Funkcja otoki 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)

Utworzenie

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

Zaktualizuj

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

Następny krok

Samouczek: Używanie internetowego interfejsu API portali

Zobacz też

Opis internetowego interfejsu API portali
Portale odczytuje operacje przy użyciu internetowego interfejsu API

Uwaga

Czy możesz poinformować nas o preferencjach dotyczących języka dokumentacji? Wypełnij krótką ankietę. (zauważ, że ta ankieta jest po angielsku)

Ankieta zajmie około siedmiu minut. Nie są zbierane żadne dane osobowe (oświadczenie o ochronie prywatności).