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