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”} |
Exemplu JSON pentru crearea înregistrărilor de tabel corelate într-o singură operație
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