Sdílet prostřednictvím


Použití operací webového rozhraní API portálů pro zápis, aktualizaci a odstranění

Můžete provádět dostupné operace webového rozhraní API v portálech. Operace webového rozhraní API se skládají z požadavků HTTP a odpovědí. Tento článek poskytuje ukázkové operace zápisu, aktualizace a odstranění, metody, identifikátor URI a ukázkový kód JSON, které můžete použít v požadavku HTTP.

Důležité

  • Aby tato funkce fungovala, musí být vaše verze portálu 9.3.3.x nebo novější.

Předpoklady

  • Musíte povolit tabulku a pole pro operace webového rozhraní API. Další informace: Nastavení webového rozhraní API v nastavení webu

  • Webové rozhraní API portálů přistupuje k záznamům tabulek a řídí se oprávněními k tabulce udělenými uživatelům prostřednictvím přidružených webových rolí. Ujistěte se, že jste nakonfigurovali správná oprávnění k tabulce. Další informace: Vytvoření webových rolí

Vytvoření záznamu v tabulce

Poznámka:

Při odkazu na tabulky Dataverse pomocí rozhraní Web API portálů musíte použít vlastnost EntitySetName, například pro přístup k tabulce account syntaxe kódu použije název EntitySetName accounts.

Základní vytvoření

Operace Metoda Identifikátor URI Ukázka JSON
Základní vytvoření POST [Identifikátor URI portálu]/_api/accounts {"name":"Sample Account"}

Jako příklad následuje tělo požadavku odeslané do sady tabulek Obchodní vztah (Account) vytvoří v kontextu vytváření účtu celkem čtyři nové tabulky – včetně obchodního vztahu.

  • Kontakt je vytvořen, protože je definován jako vlastnost objektu vlastnosti navigace s jednou hodnotou primarycontactid.
  • Příležitost je vytvořena, protože je definována jako objekt v poli, který je nastaven na hodnotu vlastnosti navigace s hodnotou kolekce opportunity_customer_accounts.
  • Úkol je vytvořen, protože je definována jako objekt v poli, který je nastaven na hodnotu vlastnosti navigace s hodnotou kolekce 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" }
      ]
  }
 ]
}

Přidružení záznamů tabulky při vytvoření

Operation metoda Identifikátor URI Ukázka JSON
Přidružení záznamů tabulky při vytvoření POST [Identifikátor URI portálu]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Ukázkový JSON pro vytváření poznámek pomocí webového rozhraní 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 bude obsahovat přílohu jako řetězec base64.

Aktualizace a odstranění záznamů pomocí webového rozhraní API

Základní aktualizace

Operace Metoda Identifikátor URI Ukázka JSON
Základní aktualizace PATCH [Identifikátor URI portálu]/_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 }

Aktualizace jedné hodnoty vlastnosti

Operace Způsob Identifikátor URI Ukázka JSON
Aktualizace jedné hodnoty vlastnosti PUT [Identifikátor URI portálu]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Odstranění nebo vymazání hodnoty pole

Operation metoda Identifikátor URI
Odstranění nebo vymazání hodnoty pole DELETE [Identifikátor URI portálu]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Základní odstranění

Operace Způsob Identifikátor URI
Základní odstranění DELETE [Identifikátor URI portálu]/_api/accounts(00000000-0000-0000-0000-000000000001)

Přidružení a zrušení přidružení pomocí webového rozhraní API

Přidání odkazu na vlastnost navigace s hodnotou kolekce

Operace Způsob Identifikátor URI Ukázka JSON
Přidání odkazu na vlastnost navigace s hodnotou kolekce POST [Identifikátor URI portálu]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Odebrání odkazu na tabulku

Operace Metoda Identifikátor URI
Odebrání odkazu na tabulku DELETE [Identifikátor URI portálu]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Identifikátor URI portálu]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Odebrání odkazu na tabulku pro navigační vlastnost s jednou hodnotou

U vlastnosti navigace s jednou hodnotou odeberte parametr řetězce dotazu $id.

Operace Metoda Identifikátor URI
Odebrání odkazu na tabulku pro navigační vlastnost s jednou hodnotou DELETE [Identifikátor URI portálu]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Změna odkazu ve vlastnosti navigace s jednou hodnotou

Operace Způsob Identifikátor URI Ukázka JSON
Změna odkazu ve vlastnosti navigace s jednou hodnotou PUT [Identifikátor URI portálu]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Přidružení tabulek při vytvoření

Nové tabulky lze vytvořit pomocí vztahů prostřednictvím hlubokého vložení.

Přidružení tabulek při aktualizaci pomocí navigační vlastnosti s jednou hodnotou

Tabulky můžete přidružit při aktualizaci pomocí stejné zprávy popsané v části Základní aktualizace dříve v tomto tématu, ale musíte použít anotaci @odata.bind pro nastavení hodnoty navigační vlastnosti s jednou hodnotou. Následující příklad změní obchodní vztah přidružený k příležitosti pomocí vlastnosti navigace s jednou hodnotou customerid_account.

Přidružení tabulek při aktualizaci pomocí navigační vlastnosti s jednou hodnotou

Operace Metoda Identifikátor URI Ukázka JSON
Přidružení tabulek při aktualizaci pomocí navigační vlastnosti s jednou hodnotou PATCH [Identifikátor URI portálu]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Ukázky technologií AJAX webového rozhraní API

Tento příklad ukazuje, jak vytvořit, aktualizovat a odstranit záznamy tabulky pomocí asynchronního jazyka JavaScript a XML (AJAX).

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

Vytvoření

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

Aktualizovat

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

Odstranění

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

Přidružit

Následující příklad přiřadí existující kontakt jako primární kontakt pro existující účet.

var record = {};
record[primarycontactid@odata.bind] = "/contacts(00000000-0000-0000-0000-000000000002)"; 

webapi.safeAjax({
  type: "PATCH",
  contentType: "application/json",
  url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
  data: JSON.stringify(record),
    success: function (data, textStatus, xhr) {
      console.log("Record updated");
    }
});

Další krok

Návod: Použití webového rozhraní API portálu

Viz také