Použití operací webového rozhraní API portálů pro zápis, aktualizaci a odstranění
Můžete provádět dostupné operace webového rozhraní API v portálech. Operace webového rozhraní API se skládají z požadavků HTTP a odpovědí. Tento článek poskytuje ukázkové operace zápisu, aktualizace a odstranění, metody, identifikátor URI a ukázkový kód JSON, které můžete použít v požadavku HTTP.
Důležité
- Aby tato funkce fungovala, musí být vaše verze portálu 9.3.3.x nebo novější.
Předpoklady
Musíte povolit tabulku a pole pro operace webového rozhraní API. Další informace: Nastavení webového rozhraní API v nastavení webu
Webové rozhraní API portálů přistupuje k záznamům tabulek a řídí se oprávněními k tabulce udělenými uživatelům prostřednictvím přidružených webových rolí. Ujistěte se, že jste nakonfigurovali správná oprávnění k tabulce. Další informace: Vytvoření webových rolí
Vytvoření záznamu v tabulce
Základní vytvoření
| Operation | Method | Identifikátor URI | Ukázka JSON |
|---|---|---|---|
| Základní vytvoření | POST | [Portal URI]/_api/accounts | {"name":"Sample Account"} |
Ukázkový kód JSON pro vytváření souvisejících záznamů tabulky v jedné operaci
Jako příklad následuje tělo požadavku odeslané do sady tabulek Obchodní vztah (Account) vytvoří v kontextu vytváření účtu celkem čtyři nové tabulky – včetně obchodního vztahu.
- Kontakt je vytvořen, protože je definován jako vlastnost objektu vlastnosti navigace s jednou hodnotou
primarycontactid. - Příležitost je vytvořena, protože je definována jako objekt v poli, který je nastaven na hodnotu vlastnosti navigace s hodnotou kolekce
opportunity_customer_accounts. - Úkol je vytvořen, protože je definována jako objekt v poli, který je nastaven na hodnotu vlastnosti navigace s hodnotou kolekce
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" }
]
}
]
}
Přidružení záznamů tabulky při vytvoření
| Operation | Method | Identifikátor URI | Ukázka JSON |
|---|---|---|---|
| Přidružení záznamů tabulky při vytvoření | POST | [Portal URI]/_api/accounts | {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"} |
Ukázkový JSON pro vytváření poznámek pomocí webového rozhraní API
{
"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 bude obsahovat přílohu jako řetězec base64.
Aktualizace a odstranění záznamů pomocí webového rozhraní API
Základní aktualizace
| Operace | Metoda | Identifikátor URI | Ukázka JSON |
|---|---|---|---|
| Základní aktualizace | PATCH | [Portal URI]/_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 } |
Aktualizace jedné hodnoty vlastnosti
| Operace | Způsob | Identifikátor URI | Ukázka JSON |
|---|---|---|---|
| Aktualizace jedné hodnoty vlastnosti | PUT | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name | {"value": "Updated Sample Account Name"} |
Odstranění jedné hodnoty vlastnosti
| Operace | Způsob | Identifikátor URI |
|---|---|---|
| Odstranění jedné hodnoty vlastnosti | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description |
Základní odstranění
| Operace | Způsob | Identifikátor URI |
|---|---|---|
| Základní odstranění | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001) |
Přidružení a zrušení přidružení pomocí webového rozhraní API
Přidání odkazu na vlastnost navigace s hodnotou kolekce
| Operace | Způsob | Identifikátor URI | Ukázka JSON |
|---|---|---|---|
| Přidání odkazu na vlastnost navigace s hodnotou kolekce | POST | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref | {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"} |
Odebrání odkazu na tabulku
| Operace | Metoda | Identifikátor URI |
|---|---|---|
| Odebrání odkazu na tabulku | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) |
Odebrání odkazu na tabulku pro navigační vlastnost s jednou hodnotou
U vlastnosti navigace s jednou hodnotou odeberte parametr řetězce dotazu $id.
| Operace | Metoda | Identifikátor URI |
|---|---|---|
| Odebrání odkazu na tabulku pro navigační vlastnost s jednou hodnotou | DELETE | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref |
Změna odkazu ve vlastnosti navigace s jednou hodnotou
| Operace | Způsob | Identifikátor URI | Ukázka JSON |
|---|---|---|---|
| Změna odkazu ve vlastnosti navigace s jednou hodnotou | PUT | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref | {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Přidružení tabulek při vytvoření
Nové tabulky lze vytvořit pomocí vztahů prostřednictvím hlubokého vložení.
Přidružení tabulek při aktualizaci pomocí navigační vlastnosti s jednou hodnotou
Tabulky můžete přidružit při aktualizaci pomocí stejné zprávy popsané v části Základní aktualizace dříve v tomto tématu, ale musíte použít anotaci @odata.bind pro nastavení hodnoty navigační vlastnosti s jednou hodnotou. Následující příklad změní obchodní vztah přidružený k příležitosti pomocí vlastnosti navigace s jednou hodnotou customerid_account.
Přidružení tabulek při aktualizaci pomocí navigační vlastnosti s jednou hodnotou
| Operace | Metoda | Identifikátor URI | Ukázka JSON |
|---|---|---|---|
| Přidružení tabulek při aktualizaci pomocí navigační vlastnosti s jednou hodnotou | PATCH | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) | {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Ukázky technologií AJAX webového rozhraní API
Tento příklad ukazuje, jak vytvořit, aktualizovat a odstranit záznamy tabulky pomocí asynchronního jazyka JavaScript a XML (AJAX).
Funkce Wrapper 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)
Vytvoření
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);
}
});
Odstranění
webapi.safeAjax({
type: "DELETE",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
contentType: "application/json",
success: function (res) {
console.log(res);
}
});
Další krok
Kurz: Použití webového rozhraní API portálu
Viz také
Přehled webového rozhraní API portálů Operace čtení pomocí webového rozhraní API portálů
Poznámka
Můžete nám sdělit, jaké máte jazykové preference pro dokumentaci? Zúčastněte se krátkého průzkumu. (upozorňujeme, že tento průzkum je v angličtině)
Průzkum bude trvat asi sedm minut. Nejsou shromažďovány žádné osobní údaje (prohlášení o zásadách ochrany osobních údajů).
Váš názor
Odeslat a zobrazit názory pro