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
Poznámka:
Při odkazu na tabulky Dataverse pomocí rozhraní Web API portálů musíte použít vlastnost EntitySetName, například pro přístup k tabulce account syntaxe kódu použije název EntitySetName accounts.
Základní vytvoření
Operace | Metoda | Identifikátor URI | Ukázka JSON |
---|---|---|---|
Základní vytvoření | POST | [Identifikátor URI portálu]/_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 | metoda | Identifikátor URI | Ukázka JSON |
---|---|---|---|
Přidružení záznamů tabulky při vytvoření | POST | [Identifikátor URI portálu]/_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 | [Identifikátor URI portálu]/_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 | [Identifikátor URI portálu]/_api/accounts(00000000-0000-0000-0000-000000000001)/name | {"value": "Updated Sample Account Name"} |
Odstranění nebo vymazání hodnoty pole
Operation | metoda | Identifikátor URI |
---|---|---|
Odstranění nebo vymazání hodnoty pole | DELETE | [Identifikátor URI portálu]/_api/accounts(00000000-0000-0000-0000-000000000001)/description |
Základní odstranění
Operace | Způsob | Identifikátor URI |
---|---|---|
Základní odstranění | DELETE | [Identifikátor URI portálu]/_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 | [Identifikátor URI portálu]/_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 | [Identifikátor URI portálu]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Identifikátor URI portálu]/_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 | [Identifikátor URI portálu]/_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 | [Identifikátor URI portálu]/_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 | [Identifikátor URI portálu]/_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"))
}
});
Aktualizovat
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);
}
});
Přidružit
Následující příklad přiřadí existující kontakt jako primární kontakt pro existující účet.
var record = {};
record[primarycontactid@odata.bind] = "/contacts(00000000-0000-0000-0000-000000000002)";
webapi.safeAjax({
type: "PATCH",
contentType: "application/json",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
data: JSON.stringify(record),
success: function (data, textStatus, xhr) {
console.log("Record updated");
}
});
Další krok
Návod: Použití webového rozhraní API portálu