Del via


Brug portalerne Web-API - skrive, opdatere og slette handlinger

Du kan udføre tilgængelige web-API-handlinger i portaler. Web-API-handlinger består af HTTP-anmodninger og -svar. Denne artikel indeholder eksempler på skrive-, opdatere- og slettehandlinger, metoder, URI'er og det JSON-eksempel, du kan bruge i HTTP-anmodninger.

Vigtigt

  • Din portalversion skal være 9.3.3.x eller nyere, for at denne funktion kan fungere.

Forudsætninger

  • Aktiver tabel og felt for web-API-handlinger. Flere oplysninger: Indstillinger for websted for web-API'en

  • Portalerne Web API giver adgang til tabelposter og følger de tabeltilladelser, der gives til brugere via de tilknyttede webroller. Sørg for at konfigurere de rette tabeltilladelser. Flere oplysninger: Oprette webroller

Oprette en post i en tabel

Bemærk

Når du refererer til Dataverse-tabeller ved hjælp af portal-Wweb-API'en, skal du f.eks. bruge EntitySetName til at få adgang til account-tabellen. Kodesyntaksen bruger EntitySetName accounts.

Grundlæggende oprettelse

Operation Metode URI JSON-eksempel
Grundlæggende oprettelse POST [Portal URI]/_api/accounts {"navn":"Eksempelfirma"}

Som et eksempel opretter følgende brødtekst, der sendes til tabellen Firma, i alt fire nye tabeller – herunder kontoen – i forbindelse med oprettelse af kontoen.

  • Der oprettes en kontakt, fordi den er defineret som en objektegenskab for navigationsegenskaben med en enkelt værdi primarycontactid.
  • En salgsmulighed oprettes, fordi den er defineret som et objekt i en matrix, der er angivet til værdien for en navigationsegenskab med samlingsværdien opportunity_customer_accounts.
  • En opgave oprettes, fordi den er defineret som et objekt i en matrix, der er angivet til værdien for en navigationsegenskab med samlingsværdien 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" }
      ]
  }
 ]
}

Tilknytte tabelposter ved oprettelse

Operation Metode URI JSON-eksempel
Tilknytte tabelposter ved oprettelse POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Eksempel på JSON til oprettelse af en anmærkning via web-API'en

{
    "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 indeholder den vedhæftede fil som en base64-streng.

Opdatere og slette poster ved hjælp af web-API'en

Grundlæggende opdatering

Handling Metode URI JSON-eksempel
Grundlæggende opdatering PATCH [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 }

Opdater en enkelt egenskabsværdi

Handling Metode URI JSON-eksempel
Opdater en enkelt egenskabsværdi PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Slette eller rydde en feltværdi

Operation Metode URI
Slette eller rydde en feltværdi DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Grundlæggende sletning

Handling Metode URI
Grundlæggende sletning DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Tilknytte og fjerne tilknytningen af tabeller ved hjælp af web-API'en

Føj en reference til en navigationsegenskab med gruppeværdi

Handling Metode URI JSON-eksempel
Føj en reference til en navigationsegenskab med gruppeværdi POST [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Fjerne en reference til en tabel

Handling Metode URI
Fjerne en reference til en tabel DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Fjerne en reference til en tabel for en navigationsegenskab med en enkelt værdi

Fjern forespørgselsstrengparameteren $id for en navigationsegenskab med enkeltværdi.

Handling Metode URI
Fjerne en reference til en tabel for en navigationsegenskab med en enkelt værdi DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Skift referencen i navigationsegenskab med enkeltværdi

Handling Metode URI JSON-eksempel
Skift referencen i navigationsegenskab med enkeltværdi PUT (personer, der bruger tv) [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Tilknytte tabeller ved oprettelse

Du kan oprette nye tabeller med relationer ved hjælp af et dybt indlæg.

Tilknytte tabeller ved opdatering ved hjælp af en navigationsegenskab med en enkelt værdi

Du kan tilknytte tabeller ved opdatering ved hjælp af den samme meddelelse, der beskrives i Grundlæggende opdatering tidligere i denne emne, men du skal bruge @odata.bind-anmærkningen til at angive værdien for en navigationsegenskab med en enkelt værdi. I følgende eksempel ændres det firma, der er knyttet til en salgsmulighed, ved hjælp af customerid_account-navigationsegenskaben med en enkelt værdi.

Tilknytte tabeller ved opdatering ved hjælp af en navigationsegenskab med en enkelt værdi

Handling Metode URI JSON-eksempel
Tilknytte tabeller ved opdatering ved hjælp af en navigationsegenskab med en enkelt værdi PATCH [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Web-API-AJAX-eksempler

I dette eksempel vises, hvordan du kan oprette, opdatere og slette tabelposter ved hjælp af AJAX (Asynchronous JavaScript og XML).

AJAX-ombryderfunktion

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

Opret

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

Opdatér

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

Tilknyt

I følgende eksempel tildeles en eksisterende kontakt som den primære kontakt for en eksisterende 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");
    }
});

Næste trin

Selvstudium: Bruge Web API-portal

Se også