Usar operacións de escritura, actualización e eliminación da API web de portais
Nota
A partir do 12 de outubro de 2022, Portais de Power Apps é Power Pages. Máis información: Microsoft Power Pages xa está dispoñible de forma xeral (blog)
Proximamente migraremos e uniremos a documentación de Portais de Power Apps coa documentación de Power Pages.
Pode realizar operacións de API web dispoñibles en portais. As operacións da API web consisten en solicitudes e respostas HTTP. Este artigo proporciona operacións de escritura, actualización e eliminación de exemplo, métodos, URI e o JSON de exemplo que pode usar nas solicitudes HTTP.
Importante
- A súa versión do portal debe ser 9.3.3.x ou posterior para que esta función funcione.
Requisitos previos
Active a táboa e o campo para as operacións da API web. Máis información: Axustes do sitio para a API web
A API web de portais accede aos rexistros de táboas e segue os permisos de táboa dados aos usuarios a través dos roles web asociados. Asegúrese de configurar os permisos de táboa correctos. Máis información: Crear roles web
Crear un rexistro nunha táboa
Nota
Cando faga referencia a táboas de Dataverse usando a API web de portais, cómpre usar EntitySetName, por exemplo, para acceder á táboa de conta, a sintaxe do código usará EntitySetName de contas.
Creación básica
Operación | Método | URI | JSON de exemplo |
---|---|---|---|
Creación básica | Publicación | [URI do portal]/_api/accounts | {"nome": "Conta de exemplo"} |
JSON de mostra para crear rexistros de táboa relacionados nunha operación
Como exemplo, o seguinte corpo de solicitude publicado no conxunto de táboas Conta creará un total de catro táboas novas, incluída a conta, no contexto da creación da conta.
- Créase un contacto porque se define como unha propiedade de obxecto da propiedade de navegación de valor único
primarycontactid
. - Créase unha oportunidade porque se define como un obxecto dentro dunha matriz definida como o valor dunha propiedade de navegación con valor de colección
opportunity_customer_accounts
. - Créase unha tarefa porque se define como un obxecto dentro dunha matriz definida como o valor dunha propiedade de navegación con valor de colección
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" }
]
}
]
}
Asociar rexistros de táboas ao crear
Operación | Método | URI | JSON de exemplo |
---|---|---|---|
Asociar rexistros de táboas ao crear | POST | [URI do portal]/_api/accounts | {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"} |
JSON de mostra para crear unha anotación a través da 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
conterá o anexo como unha cadea base64.
Actualizar e eliminar rexistros mediante a API web
Actualización básica
Operación | Método | URI | JSON de exemplo |
---|---|---|---|
Actualización básica | PARCHE | [URI do 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 } |
Actualizar un valor único de propiedade
Operación | Método | URI | JSON de exemplo |
---|---|---|---|
Actualizar un valor único de propiedade | PUT | [URI do portal]/_api/accounts(00000000-0000-0000-0000-000000000001)/name | {"value": "Updated Sample Account Name"} |
Eliminar ou borrar un valor de campo
Operación | Método | URI |
---|---|---|
Eliminar ou borrar un valor de campo | DELETE | [URI do portal]/_api/accounts(00000000-0000-0000-0000-000000000001)/description |
Eliminación básica
Operación | Método | URI |
---|---|---|
Eliminación básica | SUPR | [URI do portal]/_api/accounts(00000000-0000-0000-0000-000000000001) |
Asociar e desasociar táboas mediante a API web
Engadir unha referencia a unha propiedade de navegación con valor de colección
Operación | Método | URI | JSON de exemplo |
---|---|---|---|
Engadir unha referencia a unha propiedade de navegación con valor de colección | Publicación | [URI do portal]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref | {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"} |
Eliminar unha referencia a unha táboa
Operación | Método | URI |
---|---|---|
Eliminar unha referencia a unha táboa | DELETE | [URI do portal]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) |
Eliminar unha referencia a unha táboa para unha propiedade de navegación de valor único
Para unha propiedade de navegación de valor único, elimine o parámetro de cadea de consulta $id.
Operación | Método | URI |
---|---|---|
Eliminar unha referencia a unha táboa para unha propiedade de navegación de valor único | DELETE | [URI do portal]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref |
Cambiar a referencia nunha propiedade de navegación cun valor único
Operación | Método | URI | JSON de exemplo |
---|---|---|---|
Cambiar a referencia nunha propiedade de navegación cun valor único | PUT | [URI do portal]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref | {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Asociar táboas ao crear
Pódense crear novas táboas con relacións usando a inserción profunda.
Asociar táboas ao actualizar usando unha propiedade de navegación de valor único
Pode asociar táboas na actualización empregando a mesma mensaxe descrita en Actualización básica anteriormente neste tema, pero debe usar a anotación @odata.bind
para establecer o valor dunha propiedade de navegación de valor único. O seguinte exemplo cambia a conta asociada a unha oportunidade usando a propiedade de navegación de valor único customerid_account
.
Asociar táboas ao actualizar usando unha propiedade de navegación de valor único
Operación | Método | URI | JSON de exemplo |
---|---|---|---|
Asociar táboas ao actualizar usando unha propiedade de navegación de valor único | PATCH | [URI do portal]/_api/opportunities(00000000-0000-0000-0000-000000000001) | {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Exemplos de AJAX de API web
Esta mostra mostra como crear, actualizar e eliminar rexistros de táboas usando JavaScript e XML asíncronos (AJAX).
Función de envoltorio 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)
Crear
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);
}
});
SUPR
webapi.safeAjax({
type: "DELETE",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
contentType: "application/json",
success: function (res) {
console.log(res);
}
});
Seguinte paso
Titorial: usar a API web dos portais
Consulte tamén
Visión xeral da API web dos portais
Operacións de lectura de portais mediante a API web
Nota
Pode indicarnos as súas preferencias para o idioma da documentación? Realice unha enquisa breve. (teña en conta que esa enquisa está en inglés)
Esta enquisa durará sete minutos aproximadamente. Non se recompilarán datos persoais (declaración de privacidade).