Dela via


Använd portalers webb-API för att skriva, uppdatera och ta bort

Du kan utföra tillgängliga webb-API-åtgärder i portaler. Webb-API-åtgärder består av HTTP-begäranden och svar. Den här artikeln innehåller exempel på skriv-, uppdaterings- och borttagningsåtgärder, metoder, URI och exempel på JSON som du kan använda i HTTP-begäran.

Viktigt!

  • Portalversionen måste vara 9.3.3.x eller senare för att den här funktionen ska fungera.

Förutsättningar

  • Aktivera tabell och fält för webb-API-åtgärder. Mer information: Webbplatsinställningar för webb-API

  • Portalers webb-API ger åtkomst till tabellposter och följer tabellbehörigheterna som ges till användare via de associerade webbrollerna. Se till att du konfigurerar rätt tabellbehörigheter. Mer information: Skapa webbroller

Skapa en post i en tabell

Kommentar

När du refererar Dataverse tabeller med portalerna webb-API, måste du använda EntitySetName till exempel för åtkomst till tabellen konto kodens syntax använder EntitySetName för konton.

Skapa grundläggande

Operation Metod URI JSON-exempel
Skapa grundläggande PUBLICERA [Portal URI]/_api/accounts {"name":"Sample Account"}

Som ett exempel skapar följande begärandetext som publicerats i tabellen Konto totalt fyra nya tabeller – inklusive kontot – i sammanhanget för att skapa kontot.

  • En kontakt skapas eftersom den har definierats som en objektegenskap för den enkelvärderade navigeringsegenskapen primarycontactid.
  • En affärsmöjlighet skapas eftersom den har definierats som ett objekt i en matris som är inställd på värdet för en samlingsvärderad navigeringsegenskap opportunity_customer_accounts.
  • En uppgift skapas eftersom den har definierats som ett objekt i en matris som är inställd på värdet för en samlingsvärderad navigeringsegenskap 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" }
      ]
  }
 ]
}

Associera tabellposter som ska skapas

Operation Metod URI JSON-exempel
Associera tabellposter som ska skapas POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Exempel-JSON för att skapa en anteckning via webb-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 innehåller den bifogade filen som en base64-sträng.

Uppdatera och ta bort poster med hjälp av webb-API

Enkel uppdatering

Operation Metod URI JSON-exempel
Enkel uppdatering KORRIGERING [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 }

Uppdatera ett enskilt egenskapsvärde

Åtgärd Metod URI JSON-exempel
Uppdatera ett enskilt egenskapsvärde PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Ta bort eller avmarkera ett fältvärde

Operation Metod URI
Ta bort eller avmarkera ett fältvärde DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Enkel borttagning

Åtgärd Metod URI
Enkel borttagning DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Associera och avassociera tabeller med hjälp av webb-API

Lägga till en referens till en navigeringsegenskap för samlingsvärden

Åtgärd Metod URI JSON-exempel
Lägga till en referens till en navigeringsegenskap för samlingsvärden SKICKA [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Ta bort en referens till en tabell

Åtgärd Metod URI
Ta bort en referens till en tabell DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Ta bort en referens till en tabell för en enkelvärdesegenskap

För en navigeringsegenskap med ett enskilt värde tar du bort parametern $id frågesträng.

Åtgärd Metod URI
Ta bort en referens till en tabell för en enkelvärdesegenskap DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Ändra referensen i en navigeringsegenskap med ett enskilt värde

Åtgärd Metod URI JSON-exempel
Ändra referensen i en navigeringsegenskap med ett enskilt värde PUT [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Associera tabeller som ska skapas

Nya tabeller kan skapas med Relationer med hjälp av infoga djup.

Associera tabeller som uppdateras med hjälp av en enkelvärdesegenskap

Du kan associera tabeller vid uppdatering med samma meddelande som beskrivs i Grundläggande uppdatering, tidigare i ämne, men du måste använda @odata.bind anteckningen för att ange värdet för en enkel navigeringsegenskap. I följande exempel ändras kontot som är associerat till en affärsmöjlighet med hjälp av den enkelvärderade navigeringsegenskapen customerid_account.

Associera tabeller som uppdateras med hjälp av en enkelvärdesegenskap

Åtgärd Metod URI JSON-exempel
Associera tabeller som uppdateras med hjälp av en enkelvärdesegenskap PATCH [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Webb-API AJAX-exempel

I det här exemplet visas hur du skapar, uppdaterar och tar bort tabellposter med hjälp av Asynkron JavaScript och XML (AJAX).

Funktionen omslag 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)

Skapa

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

Uppdatera

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

Associera

I följande exempel tilldelas en befintlig kontakt som primär kontakt för ett befintligt konto.

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

Gå vidare

Så här gör du: Använd webb-API för portaler

Se även