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).
Comentarios
https://aka.ms/ContentUserFeedback.
Proximamente: Ao longo de 2024, retiraremos gradualmente GitHub Issues como mecanismo de comentarios sobre o contido e substituirémolo por un novo sistema de comentarios. Para obter máis información, consulte:Enviar e ver os comentarios