Use as operacións de escritura, actualización e eliminación da API web de portais
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 ofrece exemplos de operacións de escritura, actualización e eliminación, métodos, URI e exemplo de JSON que podes 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
Activa a táboa e o campo para as operacións da API web. Máis información: Configuración do sitio para a API web
A API web de portais accede aos rexistros das táboas e segue os permisos das táboas concedidos 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 se refire Dataverse táboas usando a API web de portais, cómpre usar o EntitySetName, por exemplo, para acceder ao conta táboa, a sintaxe do código usará o 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 foi publicado en Conta O conxunto de táboas 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 dun único valor
primarycontactid. - Créase unha oportunidade porque se define como un obxecto dentro dunha matriz que se establece co 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 que se establece co 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 un valor único de propiedade
| Operación | Método | URI |
|---|---|---|
| Eliminar un valor único de propiedade | SUPR | [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 $id parámetro de cadea de consulta.
| 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
Podes asociar táboas na actualización usando a mesma mensaxe descrita en Actualización básica anteriormente neste tema, pero debes usar o@odata.bind anotación para establecer o valor dunha propiedade de navegación de valor único. O seguinte exemplo cambia a conta asociada a unha oportunidade usando ocustomerid_account propiedade de navegación de valor único.
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: Usa a API web do portal
Consulte tamén
Visión xeral da API web dos portais Os portais len operacións 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
Enviar e ver os comentarios