Använd portalers webb-API för att skriva, uppdatera och ta bort
Du kan utföra tillgängliga webb-API-åtgärder i portaler. Webb-API-åtgärder består av HTTP-begäranden och svar. Den här artikeln innehåller exempel på skriv-, uppdaterings- och borttagningsåtgärder, metoder, URI och exempel på JSON som du kan använda i HTTP-begäran.
Viktigt!
- Portalversionen måste vara 9.3.3.x eller senare för att den här funktionen ska fungera.
Förutsättningar
Aktivera tabell och fält för webb-API-åtgärder. Mer information: Webbplatsinställningar för webb-API
Portalers webb-API ger åtkomst till tabellposter och följer tabellbehörigheterna som ges till användare via de associerade webbrollerna. Se till att du konfigurerar rätt tabellbehörigheter. Mer information: Skapa webbroller
Skapa en post i en tabell
Kommentar
När du refererar Dataverse tabeller med portalerna webb-API, måste du använda EntitySetName till exempel för åtkomst till tabellen konto kodens syntax använder EntitySetName för konton.
Skapa grundläggande
Operation | Metod | URI | JSON-exempel |
---|---|---|---|
Skapa grundläggande | PUBLICERA | [Portal URI]/_api/accounts | {"name":"Sample Account"} |
Exempel på JSON för att skapa relaterade tabellposter i en åtgärd
Som ett exempel skapar följande begärandetext som publicerats i tabellen Konto totalt fyra nya tabeller – inklusive kontot – i sammanhanget för att skapa kontot.
- En kontakt skapas eftersom den har definierats som en objektegenskap för den enkelvärderade navigeringsegenskapen
primarycontactid
. - En affärsmöjlighet skapas eftersom den har definierats som ett objekt i en matris som är inställd på värdet för en samlingsvärderad navigeringsegenskap
opportunity_customer_accounts
. - En uppgift skapas eftersom den har definierats som ett objekt i en matris som är inställd på värdet för en samlingsvärderad navigeringsegenskap
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" }
]
}
]
}
Associera tabellposter som ska skapas
Operation | Metod | URI | JSON-exempel |
---|---|---|---|
Associera tabellposter som ska skapas | POST | [Portal URI]/_api/accounts | {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"} |
Exempel-JSON för att skapa en anteckning via webb-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
innehåller den bifogade filen som en Base64-sträng.
Uppdatera och ta bort poster med hjälp av webb-API
Enkel uppdatering
Operation | Metod | URI | JSON-exempel |
---|---|---|---|
Enkel uppdatering | KORRIGERING | [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 } |
Uppdatera ett enskilt egenskapsvärde
Åtgärd | Metod | URI | JSON-exempel |
---|---|---|---|
Uppdatera ett enskilt egenskapsvärde | PUT | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name | {"value": "Updated Sample Account Name"} |
Ta bort eller avmarkera ett fältvärde
Operation | Metod | URI |
---|---|---|
Ta bort eller avmarkera ett fältvärde | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description |
Enkel borttagning
Åtgärd | Metod | URI |
---|---|---|
Enkel borttagning | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001) |
Associera och avassociera tabeller med hjälp av webb-API
Lägga till en referens till en navigeringsegenskap för samlingsvärden
Åtgärd | Metod | URI | JSON-exempel |
---|---|---|---|
Lägga till en referens till en navigeringsegenskap för samlingsvärden | SKICKA | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref | {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"} |
Ta bort en referens till en tabell
Åtgärd | Metod | URI |
---|---|---|
Ta bort en referens till en tabell | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) |
Ta bort en referens till en tabell för en enkelvärdesegenskap
För en navigeringsegenskap med ett enskilt värde tar du bort parametern $id frågesträng.
Åtgärd | Metod | URI |
---|---|---|
Ta bort en referens till en tabell för en enkelvärdesegenskap | DELETE | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref |
Ändra referensen i en navigeringsegenskap med ett enskilt värde
Åtgärd | Metod | URI | JSON-exempel |
---|---|---|---|
Ändra referensen i en navigeringsegenskap med ett enskilt värde | PUT | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref | {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Associera tabeller som ska skapas
Nya tabeller kan skapas med Relationer med hjälp av infoga djup.
Associera tabeller som uppdateras med hjälp av en enkelvärdesegenskap
Du kan associera tabeller vid uppdatering med samma meddelande som beskrivs i Grundläggande uppdatering, tidigare i ämne, men du måste använda @odata.bind
anteckningen för att ange värdet för en enkel navigeringsegenskap. I följande exempel ändras kontot som är associerat till en affärsmöjlighet med hjälp av den enkelvärderade navigeringsegenskapen customerid_account
.
Associera tabeller som uppdateras med hjälp av en enkelvärdesegenskap
Åtgärd | Metod | URI | JSON-exempel |
---|---|---|---|
Associera tabeller som uppdateras med hjälp av en enkelvärdesegenskap | PATCH | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) | {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Webb-API AJAX-exempel
I det här exemplet visas hur du skapar, uppdaterar och tar bort tabellposter med hjälp av Asynkron JavaScript och XML (AJAX).
Funktionen omslag 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)
Skapa
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"))
}
});
Uppdatera
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);
}
});
Associera
I följande exempel tilldelas en befintlig kontakt som primär kontakt för ett befintligt konto.
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");
}
});
Gå vidare
Så här gör du: Använd webb-API för portaler