Partajați prin


Utilizați portalurile API web scriu, actualizează și șterg operații

Puteți efectua operațiunile API Web disponibile în portaluri. Operațiunile API web constau în cereri și răspunsuri HTTP. În acest articol furnizează exemple de operațiuni scriere, actualizare și ștergere, metode, URI și exemplul JSON pe care îl puteți utiliza în cererile HTTP.

Important

  • Versiunea portalului dvs. trebuie să fie 9.3.3.x sau mai recentă pentru ca această caracteristică să funcționeze.

Cerințe preliminare

  • Activați tabelul și câmpul pentru operațiunile API Web. Pentru mai multe informații: Setările site-ului pentru API Web

  • Portalurile API Web accesează înregistrările tabelelor și urmează permisiunile de tabel date utilizatorilor prin intermediul rolurile web asociat. Asigurați-vă că configurați permisiunile corecte pentru tabel. Mai multe informații: Crearea rolurilor Web

Creați o înregistrare într-un tabel

Notă

Când vă referiți la tabelele Dataverse care utilizează portalurile API Web , trebuie să utilizați EntitySetName, de exemplu, pentru a accesa tabelul cont, sintaxa codului va folosi EntitySetName a conturilor.

Creare de bază

Operație Metodă URI Exemplu JSON
Creare de bază POSTARE [Portal URI]/_api/accounts {„name”:„Exemplu cont”}

De exemplu, următorul corp al solicitării postat în setul de tabel Cont va crea un total de patru tabele noi - inclusiv contul- în contextul creării contului.

  • Se creează un contact deoarece este definit ca o proprietate obiect a proprietății de navigare cu o singură valoare primarycontactid.
  • O oportunitate este creată, deoarece este definită ca un obiect dintr-o matrice care este setată la valoarea unei proprietăți de navigare cu valoare de colecție opportunity_customer_accounts.
  • O sarcină este creată, deoarece este definită ca un obiect dintr-o matrice care este setată la valoarea unei proprietăți de navigare cu valoare de colecție 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" }
      ]
  }
 ]
}

Asociați înregistrările tabelului la creare

Operație Metodă URI Exemplu JSON
Asociați înregistrările tabelului la creare POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Exemplu JSON pentru crearea unei adnotări prin intermediul API-ului Web

{
    "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 va conține atașamentul ca un șir base64.

Actualizați și ștergeți înregistrările utilizând API-ul web

Actualizare de bază

Operație Metodă URI Exemplu JSON
Actualizare de bază 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 }

Actualizați o singură valoare a proprietății

Operațiune Metodă URI Exemplu JSON
Actualizați o singură valoare a proprietății PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Ștergeți sau goliți valoarea unui câmp

Operație Metodă URI
Ștergeți sau goliți valoarea unui câmp DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Ștergere de bază

Operațiune Metodă URI
Ștergere de bază DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Asociați și anulați tabelelor utilizând API-ul web

Adăugați o referință la o proprietate de navigare cu valoare de colectare

Operațiune Metodă URI Exemplu JSON
Adăugați o referință la o proprietate de navigare cu valoare de colectare PUBLICARE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Eliminați o referință la un tabel

Operație Metodă URI
Eliminați o referință la un 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)

Eliminați o referință la un tabel pentru o proprietate de navigare cu valoare unică

Pentru o proprietate de navigare cu o singură valoare, eliminați parametrul șir de interogare $id.

Operație Metodă URI
Eliminați o referință la un tabel pentru o proprietate de navigare cu valoare unică DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Modificați referința într-o proprietate de navigație cu o singură valoare

Operațiune Metodă URI Exemplu JSON
Modificați referința într-o proprietate de navigație cu o singură valoare PUT [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Asociați înregistrările tabelelor la creare

Se pot crea tabele noi cu relații folosind inserarea complex.

Asociați tabele la actualizare utilizând o proprietate de navigare cu o valoare unică

Puteți asocia tabele la actualizare utilizând același mesaj descris în Actualizare de bază în partea anterioară din acest subiect, dar trebuie să utilizați adnotarea @odata.bind pentru a seta valoarea unei proprietăți de navigare cu o singură valoare. Următorul exemplu schimbă contul asociat unei oportunități utilizând proprietatea de navigare cu o singură valoare customerid_account.

Asociați tabele la actualizare utilizând o proprietate de navigare cu o valoare unică

Operație Metodă URI Exemplu JSON
Asociați tabele la actualizare utilizând o proprietate de navigare cu o valoare unică PATCH [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Eșantioane pentru API AJAX

Acest eșantion arată cum să creați, să actualizați și să ștergeți înregistrările tabelelor utilizând JavaScript asincron și XML (AJAX).

Funcția 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)

Create

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

Actualizați

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

Asociere

Următorul exemplu va atribui o persoană de contact existentă drept persoană de contact principală pentru un cont existent.

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

Pasul următor

Tutorial: Utilizarea API-ului web pentru portal

Consultați și