Порталдардағы веб-API арқылы жазу, жаңарту және жою операцияларын пайдалану
Порталдарда қолжетімді веб-API әрекеттерін орындауға болады. Веб-API операциялары HTTP сұраулары мен жауаптарынан тұрады. Бұл мақалада HTTP сұрауларында қолдануға болатын үлгілік жазу, жаңарту және жою операциялары, URI және JSON үлгісі көрсетілген.
Маңызды
- Бұл мүмкіндік жұмыс істеуі үшін портал нұсқаңыз 9.3.3.x немесе одан кейінгі нұсқасы болуы керек.
Алғышарттар
Веб-API әрекеттері үшін кесте мен өрісті қосыңыз. Қосымша ақпарат: Веб-API сайт параметрлері
Порталдарың веб‑API интерфейсі кесте жазбаларына қатынасады және пайдаланушыларға байланысты веб-рөлдер арқылы берілген кесте рұқсаттарын орындайды. Дұрыс кесте рұқсаттарын конфигурациялағаныңызға көз жеткізіңіз. Қосымша ақпарат: Веб-рөлдер жасау
Кестеде жазба жасау
Ескертпе
Порталдардың Веб-API интерфейсін пайдаланатын Dataverse кестелері үшін EntitySetName параметрін пайдалануыңыз қажет, мысалы, тіркелгі кестесіне қатынасу үшін код синтаксисі тіркелгілер ішіндегі EntitySetName параметрін пайдаланады.
Негізгі жасау
Операция | Әдіс | URI | JSON үлгісі |
---|---|---|---|
Негізгі жасау | Жарияланым | [Portal URI]/_api/accounts | {"атау":"тіркелгі үлгісі"} |
Бір операцияда қатысты кесте жазбаларын жасауға арналған JSON үлгісі
Мысалы, Тіркелгі кестесінің жиынтығына орналастырылған келесі сұраудың негізгі мәтіні тіркелгі жасау контекстіндегі тіркелгіні қоса алғанда барлығы төрт жаңа кесте жасайды.
- Контакт
primarycontactid
бір мәнді навигация сипатының нысан сипаты ретінде анықталғандықтан жасалады. - Мүмкіндік
opportunity_customer_accounts
жиынтық мәнді навигация сипатын мәніне орнатылған тордағы нысан ретінде анықталғандықтан жасалады. - Тапсырма
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" }
]
}
]
}
Кесте жазбаларын жасау кезінде байланыстыру
Операция | Әдіс | URI | JSON үлгісі |
---|---|---|---|
Кесте жазбаларын жасау кезінде байланыстыру | POST | [Portal URI]/_api/accounts | {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"} |
Веб API арқылы аннотация жасауға арналған JSON үлгісі
{
"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
тіркемені base64 жолы ретінде қамтиды.
Web API көмегімен жазбаларды жаңарту және жою
Негізгі жаңарту
Операция | Әдіс | URI | JSON үлгісі |
---|---|---|---|
Негізгі жаңарту | 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 } |
Бір сипат мәнін жаңартыңыз
Әрекет | Әдіс | URI | JSON үлгісі |
---|---|---|---|
Бір сипат мәнін жаңартыңыз | ҚОЙЫҢЫЗ | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name | {"value": "Updated Sample Account Name"} |
Өріс мәнін жою немесе өшіру
Операция | Әдіс | URI |
---|---|---|
Өріс мәнін жою немесе өшіру | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description |
Негізгі жою
Әрекет | Әдіс | URI |
---|---|---|
Негізгі жою | DELETE пернесі | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001) |
Кестелерді веб‑API интерфейсін пайдалану арқылы байланыстыру және ажырату
Коллекциямен бағаланатын бар навигация сипатына сілтеме қосыңыз
Әрекет | Әдіс | URI | JSON үлгісі |
---|---|---|---|
Коллекциямен бағаланатын бар навигация сипатына сілтеме қосыңыз | Жарияланым | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref | {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"} |
Кестеге сілтемені алып тастау
Операция | Әдіс | URI |
---|---|---|
Кестеге сілтемені алып тастау | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) |
Бір мәнді шарлау сипатына арналған кестеге сілтемені алып тастау
Бір мәнді навигация сипаты үшін $idсұрау жолының параметрін жойыңыз.
Операция | Әдіс | URI |
---|---|---|
Бір мәнді шарлау сипатына арналған кестеге сілтемені алып тастау | DELETE | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref |
Сілтемені бір мәнді навигация сипатында өзгертіңіз
Әрекет | Әдіс | URI | JSON үлгісі |
---|---|---|---|
Сілтемені бір мәнді навигация сипатында өзгертіңіз | ҚОЙЫҢЫЗ | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref | {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Кестелерді жасау кезінде байланыстыру
Терең кірістіру арқылы қатынастары бар жаңа кестелер жасауға болады.
Бір мәнді шарлау сипатын пайдалану арқылы кестелерді жаңарту кезінде байланыстыру
Кестелерді жаңарту кезінде осы тақырыпта бұрын сипатталған Негізгі жаңарту бөліміндегі бірдей хабарды пайдалану арқылы байланыстыруға болады, бірақ бір мәнді шарлау сипатының мәнін орнату үшін @odata.bind
аннотациясын пайдалану керек. Келесі мысал customerid_account
бір мәнді навигация сипатын пайдалану арқылы мүмкіндікпен байланыстырылған тіркелгіні өзгертеді.
Бір мәнді шарлау сипатын пайдалану арқылы кестелерді жаңарту кезінде байланыстыру
Операция | Әдіс | URI | JSON үлгісі |
---|---|---|---|
Бір мәнді шарлау сипатын пайдалану арқылы кестелерді жаңарту кезінде байланыстыру | PATCH | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) | {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Веб API AJAX үлгілері
Бұл үлгі асинхронды JavaScript және XML (AJAX) функциясын пайдалану арқылы кесте жазбаларын жасау, жаңарту және жою әдісін көрсетеді.
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)
Жасау
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);
}
});
Байланыстыру
Келесі мысал бұрыннан бар контактіні бұрыннан бар тіркелгі үшін негізгі контакт ретінде тағайындайды.
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");
}
});
Келесі қадам
Әдіс: Web API порталын пайдалану