Portallar Web API kullanarak yazma, güncelleme ve silme işlemleri
Not
12 Ekim 2022 tarihi itibarıyla Power Apps portalları, Power Pages olarak adlandırılmıştır. Daha fazla bilgi: Microsoft Power Pages genel kullanıma sunuldu (blog)
Yakında Power Apps portalları belgelerini taşıyıp Power Pages belgeleri ile birleştireceğiz.
Portallarda kullanılabilir Web API'si işlemleri gerçekleştirebilirsiniz. Web API işlemleri HTTP isteklerinden ve yanıtlardan oluşur. Bu makale, HTTP isteklerinde kullanabileceğiniz örnek okuma, yazma ve silme işlemleri, yöntemler, URI ve örnek JSON sağlar.
Önemli
- Bu özelliğin çalışması için portal sürümünüzün 9.3.3.x veya üstü olması gerekir.
Önkoşullar
Web API işlemleri için tabloyu ve alanı etkinleştir. Daha fazla bilgi: Web API için site ayarları
Portal Web API tablo kayıtlarına erişir ve ilgili web rolleri aracılığıyla kullanıcılara verilen tablo izinlerini izler. Doğru tablo izinlerini yapılandırdığınızdan emin olun. Daha fazla bilgi: Web rolleri oluşturma
Tabloda kayıt oluşturma
Not
Portal Web API'sini kullanarak Dataverse tablolarına başvuruda bulunurken EntitySetName kullanmanız gerekir (ör. firma tablosuna erişmek için). Bu durumda, kod sözdizimi firmalar için EntitySetName kullanır.
Temel oluşturma
İşlem | Yöntem | URI | JSON Örneği |
---|---|---|---|
Temel oluşturma | İLETİ | [Portal URI]/_api/accounts | {"name":"Örnek hesap"} |
Tek işlemde ilgili tablo kayıtları oluşturmak için JSON örneği
Örneğin, Firma tablosu kümesine gönderilen aşağıdaki istek gövdesi, firma oluşturma bağlamında hesap da dahil olmak üzere toplam dört yeni tablo oluşturur.
- Tek değerli
primarycontactid
gezinti özelliğinin nesne özelliği olarak tanımlandığından, ilgili kişi oluşturulur. - Koleksiyon değerli
opportunity_customer_accounts
gezinme özelliğinin değerine ayarlanan bir dizi içinde bir nesne olarak belirlendiğinden bir fırsat oluşturulur. - Koleksiyon değerli
Opportunity_Tasks
gezinme özelliğinin değerine ayarlanan bir dizi içinde bir nesne olarak belirlendiğinden bir görev oluşturulur.
{
"name": "Sample Account",
"primarycontactid":
{
"firstname": "Alton",
"lastname": "Stott"
},
"opportunity_customer_accounts":
[
{
"name": "Opportunity associated to Sample Account",
"Opportunity_Tasks":
[
{ "subject": "Task associated to opportunity" }
]
}
]
}
Oluşturma sırasında tablo kayıtlarını ilişkilendirme
Operation | Method | URI | JSON Örneği |
---|---|---|---|
Oluşturma sırasında tablo kayıtlarını ilişkilendirme | POST | [Portal URI]/_api/accounts | {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"} |
Web API'si aracılığıyla bir ek açıklama oluşturmak için JSON örneği
{
"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
eki Base64 dizesi olarak içerecektir.
Web API kullanarak kayıtları güncelleştirme ve silme
Temel güncelleştirme
İşlem | Yöntem | URI | JSON Örneği |
---|---|---|---|
Temel güncelleştirme | YAMA | [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 } |
Tek bir özellik değerini güncelleştirme
İşlem | Yöntem | URI | JSON Örneği |
---|---|---|---|
Tek bir özellik değerini güncelleştirme | PUT | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name | {"value": "Updated Sample Account Name"} |
Alan değerini silme veya temizleme
Operation | Yöntem | URI |
---|---|---|
Alan değerini silme veya temizleme | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description |
Temel silme
İşlem | Yöntem | URI |
---|---|---|
Temel silme | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001) |
Web API'si kullanarak tabloları ilişkilendirme ve ilişkisini kesme
Koleksiyon değerli gezinti özelliğine başvuru ekleme
İşlem | Yöntem | URI | JSON Örneği |
---|---|---|---|
Koleksiyon değerli gezinti özelliğine başvuru ekleme | Posta | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref | {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"} |
Tabloya başvuruyu kaldırma
İşlem | Yöntem | URI |
---|---|---|
Tabloya başvuruyu kaldırma | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) |
Tek değerli gezinti özelliği için bir tabloya başvuruyu kaldırma
Tek değerli gezinti özelliği için, $id sorgu dizesi parametresini kaldırın.
İşlem | Yöntem | URI |
---|---|---|
Tek değerli gezinti özelliği için bir tabloya başvuruyu kaldırma | DELETE | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref |
Tek değerli Gezinti özelliğindeki başvuruyu değiştirme
İşlem | Yöntem | URI | JSON Örneği |
---|---|---|---|
Tek değerli Gezinti özelliğindeki başvuruyu değiştirme | PUT | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref | {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Oluşturma sırasında tablo ilişkilendirme
Yeni tablolar, derin ekleme kullanılarak ilişkilerle birlikte oluşturulabilir.
Tek değerli gezinti özelliğini kullanarak, güncelleştirmedeki tabloları ilişkilendirin
Güncelleştirme yapılan tabloları, Temel güncelleştirme bölümünde daha önce anlatılan aynı iletiyi kullanarak ilişkilendirebilirsiniz ancak tek değerli gezinti özelliğinin değerini ayarlamak için @odata.bind
ek açıklamasını kullanmanız gerekir. Aşağıdaki örnek, tek değerli customerid_account
gezinti özelliğini kullanarak fırsatla ilişkilendirilen hesabı değiştirir.
Tek değerli gezinti özelliğini kullanarak, güncelleştirmedeki tabloları ilişkilendirin
İşlem | Yöntem | URI | JSON Örneği |
---|---|---|---|
Tek değerli gezinti özelliğini kullanarak, güncelleştirmedeki tabloları ilişkilendirin | PATCH | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) | {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Web API'sı AJAX örnekleri
Bu örnekte, Zaman Uyumsuz JavaScript ve XML (AJAX) kullanarak tablo kayıtları oluşturma, güncelleştirme ve silme gösterilmiştir.
Sarmalayıcı AJAX işlevi
(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)
Oluştur
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"))
}
});
Güncelleştirin
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);
}
});
Silme
webapi.safeAjax({
type: "DELETE",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
contentType: "application/json",
success: function (res) {
console.log(res);
}
});
Sonraki adım
Öğretici: Portal Web API'sini kullanma
Ayrıca bkz.
Portallar Web API'sına genel bakış
Web API kullanan portal okuma işlemleri
Not
Belge dili tercihlerinizi bizimle paylaşabilir misiniz? Kısa bir ankete katılın. (lütfen bu anketin İngilizce olduğunu unutmayın)
Anket yaklaşık yedi dakika sürecektir. Kişisel veri toplanmaz (gizlilik bildirimi).
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin