Ús de les operacions d'escriptura, actualització i supressió a l'API web dels portals
Nota
Des del 12 d'octubre de 2022, els portals del Power Apps són Power Pages. Més informació: Microsoft Power Pages ara està disponible de manera general (bloc)
Ben aviat migrarem i combinarem la documentació dels portals del Power Apps amb la documentació del Power Pages.
Podeu dur a terme operacions API web disponibles als portals. Les operacions de l'API web consisteixen en sol·licituds i respostes HTTP. En aquest article s'ofereixen operacions d'escriptura, actualització i supressió, mètodes, URI i JSON d'exemple que podeu utilitzar a les sol·licituds HTTP.
Important
- La versió del portal ha de ser 9.3.3.x o posterior per poder treballar amb aquesta característica.
Requisits previs
Habilitar la taula i el camp per a les operacions de l'API web. Més informació: Configuració del lloc per a l'API web
L'API web dels portals accedeix als registres de taula i segueix els permisos de taula atorgats als usuaris mitjançant les funcions web associades. Assegureu-vos de configurar els permisos de taula correctes. Més informació: Crear funcions web
Crear un registre en una taula
Nota
Quan feu referència a taules del Dataverse que utilitzen l'API web de portals, heu d'utilitzar EntitySetName; per exemple, per accedir a la taula compte, la sintaxi de codi utilitzarà l'EntitySetName comptes.
Creació bàsica
Operació | Mètode | URI | Exemple de JSON |
---|---|---|---|
Creació bàsica | Publica | [URI del portal]/_api/accounts | {"name":"Compte d'exemple"} |
JSON d'exemple per crear registres de taula relacionats en una operació
Per exemple, el cos de sol·licitud següent publicat al conjunt de taules Comptes crearà un total de quatre taules noves, incloent-hi la de comptes, en el context de la creació del compte.
- Un contacte es crea perquè s'ha definit com una propietat d'objecte de la propietat de navegació d'un sol valor
primarycontactid
. - Una oportunitat es crea perquè està definida com a objecte dins d'una matriu definida com a valor d'una propietat de navegació de col·lecció valuosa
opportunity_customer_accounts
. - Una tasca es crea perquè està definida com a objecte dins d'una matriu definida com a valor d'una propietat de navegació de col·lecció valuosa
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" }
]
}
]
}
Associar els registres de taula en crear-los
Operació | Mètode | URI | Exemple de JSON |
---|---|---|---|
Associar els registres de taula en crear-los | POST | [URI del portal]/_api/accounts | {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"} |
Exemple JSON per crear una anotació a través de 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
contindrà el fitxer adjunt com a cadena Base64.
Actualitzar i suprimir registres mitjançant l'API web
Actualització bàsica
Operació | Mètode | URI | Exemple de JSON |
---|---|---|---|
Actualització bàsica | PATCH | [URI del portal]/_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 } |
Actualitzar el valor d'una única propietat
Operació | Mètode | URI | Exemple de JSON |
---|---|---|---|
Actualitzar el valor d'una única propietat | PUT | [URI del portal]/_api/accounts(00000000-0000-0000-0000-000000000001)/name | {"value": "Updated Sample Account Name"} |
Suprimir o esborrar un valor de camp
Operació | Mètode | URI |
---|---|---|
Suprimir o esborrar un valor de camp | DELETE | [URI del portal]/_api/accounts(00000000-0000-0000-0000-000000000001)/description |
Supressió bàsica
Operació | Mètode | URI |
---|---|---|
Supressió bàsica | Supr | [URI del portal]/_api/accounts(00000000-0000-0000-0000-000000000001) |
Associar i anul·lar l'associació de taules amb l'API web
Afegir una referència a una propietat de navegació de valor de col·lecció
Operació | Mètode | URI | Exemple de JSON |
---|---|---|---|
Afegir una referència a una propietat de navegació de valor de col·lecció | Publica | [URI del portal]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref | {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"} |
Suprimir una referència a una taula
Operació | Mètode | URI |
---|---|---|
Suprimir una referència a una taula | DELETE | [URI del portal]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[URI del portal]/_api/opportunities(00000000-0000-0000-0000-000000000001) |
Suprimir una referència a una taula per a una propietat de navegació d'un valor
Per a una propietat de navegació de valor únic, suprimiu el paràmetre de cadena de consulta $id.
Operació | Mètode | URI |
---|---|---|
Suprimir una referència a una taula per a una propietat de navegació d'un valor | DELETE | [URI del portal]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref |
Canviar la referència d'una propietat de navegació de valor únic
Operació | Mètode | URI | Exemple de JSON |
---|---|---|---|
Canviar la referència d'una propietat de navegació de valor únic | PUT | [URI del portal]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref | {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Associar taules en crear-les
Les taules noves es poden crear amb relacions mitjançant la inserció profunda.
Associar les taules en actualitzar-les mitjançant una propietat de navegació d'un valor
Podeu associar les taules en actualitzar-les utilitzant el mateix missatge que es descriu a l'actualització bàsica, més aviat en aquest tema, però heu d'utilitzar l'anotació @odata.bind
per definir el valor d'una propietat de navegació d'un sol valor. L'exemple següent canvia el compte associat a una oportunitat mitjançant la propietat de navegació d'un sol valor customerid_account
.
Associar les taules en actualitzar-les mitjançant una propietat de navegació d'un valor
Operació | Mètode | URI | Exemple de JSON |
---|---|---|---|
Associar les taules en actualitzar-les mitjançant una propietat de navegació d'un valor | PATCH | [URI del portal]/_api/opportunities(00000000-0000-0000-0000-000000000001) | {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Exemples d'AJAX de l'API web
Aquest exemple mostra com es creen, actualitzen i suprimeixen registres de taula mitjançant JavaScript asíncron i XML (AJAX).
Funció AJAX contenidora
(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)
Creació
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);
}
});
Delete
webapi.safeAjax({
type: "DELETE",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
contentType: "application/json",
success: function (res) {
console.log(res);
}
});
Pas següent
Tutorial: Utilitzar l'API web del portal
Consulteu també
Informació general sobre l'API web de portals
Operacions de lectura en portals mitjançant l'API web
Nota
Ens podeu dir quines són les vostres preferències d'idioma per a la documentació? Responeu una breu enquesta. (tingueu en compte que l'idioma de l'enquesta és l'anglès)
Trigareu uns set minuts a completar l'enquesta. No es recopilen dades personals (declaració de privadesa).
Comentaris
https://aka.ms/ContentUserFeedback.
Properament: al llarg del 2024 eliminarem gradualment GitHub Issues com a mecanisme de retroalimentació del contingut i el substituirem per un nou sistema de retroalimentació. Per obtenir més informació, consulteu:Envieu i consulteu els comentaris de