Utilitza les operacions d'escriptura, actualització i supressió de l'API web dels portals
Podeu dur a terme operacions API web disponibles als portals. Les operacions de l'API web consisteixen en sol·licituds i respostes HTTP. Aquest article proporciona l'escriptura d'exemple, l'actualització i la supressió d'operacions, mètodes, URI i exemple JSON 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
Habilita 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 donats als usuaris a través de les funcions web associades. Assegureu-vos que configureu els permisos de la taula correctes. Més informació: Crear rols web
Crear un registre en una taula
Creació bàsica
| Operació | Mètode | URI | Exemple de JSON |
|---|---|---|---|
| Creació bàsica | POST | [URI del portal]/_api/accounts | {"name":"Compte d'exemple"} |
JSON d'exemple per crear registres de taula relacionats en una operació
Per exemple, l'òrgan de sol·licituds següent publicat al conjunt de taules Comptes crearà un total de quatre taules noves, inclòs el compte, en el context de la creació del compte.
- Es crea un contacte perquè es defineix com una propietat d'objecte de la propietat de navegació d'un sol valor
primarycontactid. - Es crea una oportunitat perquè es defineix com un objecte dins d'una matriu que s'estableix al valor d'una propietat de navegació valorada per la col·lecció
opportunity_customer_accounts. - Es crea una tasca perquè es defineix com un objecte dins d'una matriu que s'estableix al valor d'una propietat de navegació valorada per la col·lecció
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 | [Portal URI]/_api/comptes(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 | [Portal URI]/_api/comptes(00000000-0000-0000-0000-000000000001)/nom | {"value": "Updated Sample Account Name"} |
Suprimir el valor d'una única propietat
| Operació | Mètode | URI |
|---|---|---|
| Suprimir el valor d'una única propietat | DELETE | [Portal URI]/_api/comptes(00000000-0000-0000-0000-000000000001)/descripció |
Supressió bàsica
| Operació | Mètode | URI |
|---|---|---|
| Supressió bàsica | DELETE | [Portal URI]/_api/comptes(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ó | POST | [Portal URI]/_api/comptes(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 | [Portal URI]/_api/comptes(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_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ó d'un sol valor, 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 | [Portal URI]/_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 | [Portal URI]/_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 taules en actualitzar utilitzant el mateix missatge descrit a Actualització bàsica anteriorment 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 customerid_account propietat de navegació d'un sol valor.
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 | [Portal URI]/_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: Utilitza l'API web del portal
Consulteu també
Informació general sobre l’API web de portals Portals llegeixen operacions utilitzant l'API web