Usare le operazioni di scrittura, aggiornamento ed eliminazione dell'API Web dei portali
Puoi eseguire le operazioni API Web disponibili nei portali. Le operazioni API Web sono costituite da richieste e risposte HTTP. Questo articolo fornisce operazioni di scrittura, aggiornamento ed eliminazione di esempio, metodi, URI e JSON di esempio che puoi usare nelle richieste HTTP.
Importante
- La versione del portale deve essere 9.3.3.x o successiva affinché questa funzionalità sia operativa.
Prerequisiti
Abilita la tabella e il campo per le operazioni dell'API Web. Maggiori informazioni: Impostazioni del sito per l'API Web
L'API Web dei portali accede ai record della tabella e segue le autorizzazioni della tabella fornite agli utenti tramite i ruoli web associati. Assicurati di configurare le autorizzazioni della tabella corrette. Più informazioni: Creare ruoli web
Creare un record in una tabella
Nota
Quando si fa riferimento alle tabelle Dataverse utilizzando l'API Web dei portali, è necessario utilizzare EntitySetName, ad esempio, per accedere alla tabella degli account, la sintassi del codice utilizzerà EntitySetName di account.
Creazione di base
Operation | metodo | URI | Esempio JSON |
---|---|---|---|
Creazione di base | POST | [Portal URI]/_api/accounts | {"name":"Sample Account"} |
JSON di esempio per la creazione di record di tabella correlati in un'unica operazione
Ad esempio, il seguente corpo della richiesta registrato nel set di tabelle Account creerà un totale di quattro nuove tabelle, incluso l'account, nel contesto della creazione dell'account.
- Un contatto viene creato perché è definito come una proprietà oggetto della proprietà di navigazione a valore singolo
primarycontactid
. - Un'opportunità viene creata perché è definita come oggetto all'interno di un array impostato sul valore di una proprietà di navigazione con valori di raccolta
opportunity_customer_accounts
. - Un'attività viene creata perché è definita come oggetto all'interno di un array impostato sul valore di una proprietà di navigazione con valori di raccolta
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" }
]
}
]
}
Associare record di tabella durante la creazione
Operation | metodo | URI | Esempio JSON |
---|---|---|---|
Associare record di tabella durante la creazione | POST | [Portal URI]/_api/accounts | {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"} |
JSON di esempio per la creazione di un'annotazione tramite l'API 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
conterrà l'allegato come una stringa Base64.
Aggiornare ed eliminare i record usando l'API Web
Aggiornamento di base
Operazione | Metodo | URI | Esempio JSON |
---|---|---|---|
Aggiornamento di base | PATCH | [URI portale]/_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 } |
Aggiorna un unico valore proprietà
Operazione | Metodo | URI | Esempio JSON |
---|---|---|---|
Aggiorna un unico valore proprietà | PUT | [URI portale]/_api/accounts(00000000-0000-0000-0000-000000000001)/name | {"value": "Updated Sample Account Name"} |
Elimina o cancella un valore di campo
Operation | metodo | URI |
---|---|---|
Elimina o cancella un valore di campo | DELETE | [URI portale]/_api/accounts(00000000-0000-0000-0000-000000000001)/description |
Eliminazione di base
Operazione | Metodo | URI |
---|---|---|
Eliminazione di base | CANC | [URI portale]/_api/accounts(00000000-0000-0000-0000-000000000001) |
Associare and disassociare tabelle con l'API Web
Aggiungi un riferimento a una proprietà di navigazione con i valori della raccolta
Operazione | Metodo | URI | Esempio JSON |
---|---|---|---|
Aggiungi un riferimento a una proprietà di navigazione con i valori della raccolta | POST | [URI portale]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref | {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"} |
Rimuovere un riferimento a una tabella
Operazione | Metodo | URI |
---|---|---|
Rimuovere un riferimento a una tabella | DELETE | [URI portale]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[URI portale]/_api/opportunities(00000000-0000-0000-0000-000000000001) |
Rimuovere un riferimento a una tabella per una proprietà di navigazione a valore singolo
Per una proprietà di navigazione a valore singolo, rimuovi il parametro di stringa della query $id.
Operazione | Metodo | URI |
---|---|---|
Rimuovere un riferimento a una tabella per una proprietà di navigazione a valore singolo | DELETE | [URI portale]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref |
Modifica il riferimento in una proprietà di navigazione a valore singolo
Operazione | Metodo | URI | Esempio JSON |
---|---|---|---|
Modifica il riferimento in una proprietà di navigazione a valore singolo | Percentuale di telespettatori | [URI portale]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref | {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Associare tabelle durante la creazione
È possibile creare nuove tabelle con relazioni utilizzando l'insert deep.
Associare tabelle all'aggiornamento utilizzando una proprietà di navigazione a valore singolo
Puoi associare tabelle durante l'aggiornamento utilizzando lo stesso messaggio descritto in Aggiornamento di base all'inizio di questo argomento, ma devi usare l'annotazione @odata.bind
per impostare il valore di una proprietà di navigazione a valore singolo. L'esempio seguente modifica l'account associato a un'opportunità utilizzando la proprietà di navigazione a valore singolo customerid_account
.
Associare tabelle all'aggiornamento utilizzando una proprietà di navigazione a valore singolo
Operazione | Metodo | URI | Esempio JSON |
---|---|---|---|
Associare tabelle all'aggiornamento utilizzando una proprietà di navigazione a valore singolo | PATCH | [URI portale]/_api/opportunities(00000000-0000-0000-0000-000000000001) | {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Esempi di AJAX API Web
In questo esempio viene illustrato come creare, aggiornare ed eliminare record di tabella utilizzando JavaScript e XML asincrono (AJAX).
Funzione 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)
Creazione
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"))
}
});
Update
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);
}
});
Elimina
webapi.safeAjax({
type: "DELETE",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
contentType: "application/json",
success: function (res) {
console.log(res);
}
});
Associa
L'esempio seguente assegnerà un contatto esistente come contatto principale per un account esistente.
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");
}
});
Passaggio successivo
Esercitazione: utilizzare l'API Web dei portali