Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Web API 'SI ile etkileşim, hatalar da dahil olmak üzere gerekli üstbilgilere sahip ve HTTP yanıtlarını işleyen HTTP istekleri oluşturmayı içerir.
Önemli
- Bu özelliğin çalışması için portal sürümünüzün 9.3.3.x veya üstü olması gerekir.
Web API URL'si ve sürüm oluşturma
Aşağıdaki tabloda yer alan biçimi kullanarak Web API URL'sini oluşturun.
| Bölüm | Veri Akışı Açıklaması |
|---|---|
| Protokol | https:// |
| Temel URL | <portal URL> |
| Web API yolu | _api |
| Kaynak | Kullanmak istediğiniz tablonun mantıksal adı |
Örneğin, bir servis talebine başvururken bu biçimi kullanın:
https://contoso.powerappsportals.com/_api/case
Tüm Web API'si kaynakları web rolleri bağlamında ilgili tablo izinlerini izler.
HTTP yöntemleri
HTTP istekleri farklı türde Yöntemler kullanabilir. Ancak Portallar Web API'si yalnızca aşağıdaki tablodaki yöntemleri destekler:
| Metot | Kullanım |
|---|---|
| Edinin | Tablolardan veri alınırken kullanın. |
| Post | Kayıt oluştururken kullanın. |
| Düzeltme Eki | Tabloları güncelleştirirken veya upsert işlemleri yaparken kullanın. |
| Silme | Kayıtları veya kayıtların bağımsız alan değerlerini silerken kullanın. |
| Put | Kayıtların bağımsız alanlarını güncelleştirmek için sınırlı durumlarda kullanın. |
HTTP üst bilgileri
Web API'si yalnızca JSON'u destekler. Her HTTP üstbilgisi aşağıdakileri içermelidir:
- Yanıt gövdesi beklenmediğinde bileuygulamanın/JSON'un Accept üst bilgi değeri.
- İstek, istek gövdesine JSON verisi içeriyorsa
application/jsondeğerine sahip bir İçerik türü üstbilgisi eklemeniz gerekir.
Geçerli OData sürümü 4.0'dır ancak gelecekteki sürümler yeni olanaklarla izin verebilir. Gelecekte kodunuz için uygulanacak OData sürümü hakkında belirsizliğe sahip olmadığından emin olmak için aşağıdaki sözdizimini kullanın:
Sözdizimi
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Örnek: CSRF belirteci için 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)
Örnek: Tablo verilerini alın
webapi.safeAjax({
type: "GET",
url: "/_api/contacts?$select=firstname,lastname",
contentType: "application/json",
success: function (res) {
console.log(res);
}
});
Örnek: Tablo verileri oluşturma
webapi.safeAjax({
type: "POST",
url: "/_api/accounts",
contentType: "application/json",
data: JSON.stringify({
"name": "Sample Account"
}),
success: function (res, status, xhr) {
console.log("entityID: "+ xhr.getResponseHeader("entityid"))
}
});
Örnek: Tablo verilerini güncelleştirme
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);
}
});
Örnek: Tablo verilerini silme
webapi.safeAjax({
type: "DELETE",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
contentType: "application/json",
success: function (res) {
console.log(res);
}
});
Durum kodlarını tanımla
Her HTTP isteği yanıtı bir durum kodu içerir. Portal Web API'si tarafından döndürülen durum kodları aşağıdakileri içerir:
| Kod | Description | Type |
|---|---|---|
| 200 Tamam | İşleminiz yanıt gövdesinde veri döndürmeniz durumunda bu yanıtı bekler. | Başarı |
| 204 İçerik yok | İşleminiz başarılı olduğunda ancak yanıt gövdesinde veri döndürmediğinde bu yanıtı bekleyin. | Başarı |
| 403 Yasaklanmış | Bu yanıtı aşağıdaki hata türleri için alırsınız:
|
İstemci hatası |
| 401 Yetkilendirilmedi | Aşağıdaki hata türleri için bu yanıtı bekler:
|
İstemci hatası |
| 413 Zararlı Yük Çok Büyük | İstek uzunluğu çok büyük olduğunda bu yanıtı bekler. | İstemci hatası |
| 400 BadRequest | Bir bağımsız değişken geçersiz olduğunda bu yanıtı bekler. InvalidAttribute |
İstemci hatası |
| 404 Bulunamadı | Kaynak yoksa bu yanıtı bekleyin. Tablo Web API'si için gösterilmez. |
İstemci Hatası |
| 405 Yönteme İzin Verilmiyor | Bu hata, yanlış yöntem ve kaynak birleşimleri için oluşur. Örneğin, bir tablo koleksiyonu üzerinde SİLME veya YAMA eki kullanamazsınız. Bu durum, aşağıdaki hata türleri için olabilir:
|
İstemci hatası |
| 501 Uygulanmadı | İstenen bazı işlem uygulanmadığı zaman bu yanıtı bekler. | Sunucu hatası |
| 503 Hizmet Kullanılamıyor | Web API hizmeti kullanılabilir değilse bu yanıtı bekleyin. | Sunucu hatası |
Yanıttaki hataları Ayrıştır.
Yine de iç hatayı içeren aşağıdaki HTTP yanıtını göz önünde bulundurun:
{
"error":{
"code": "This code is not related to the http status code and is frequently empty",
"message": "A message describing the error",
"cdscode": "Dataverse error code",
"innererror": {
"code": "800xxxx",
"message": "A message describing the error. This is frequently the same as the outer message.."
}
}
}
Hata kodları
Hata kodları tüm işlenmiş senaryolar için onaltılı biçimde görüntülenir. Aşağıdaki tabloda, ilgili ad ve iletisiyle birlikte her bir hata kodu listelenmektedir.
| Hata kodu | Hata Adı | Hata iletisi |
|---|---|---|
| 900400FF | NoAttributesForTableCreate | Tablo Oluştur eylemi için öznitelik yok. |
| Kategori 90040100 | InvalidAttribute | {1} tablosu için {0} özniteliği bulunamıyor. |
| Kategori 90040101 | AttributePermissionIsMissing | {1} tablosundaki {0} özniteliği, Web API'si için etkinleştirilmedi. |
| Kategori 90040102 | TablePermissionWriteIsMissingDuringUpdate | {0} varlığını güncelleştirmek için izniniz yok. |
| Kategori 90040103 | TablePermissionCreateIsMissing | {0} varlığını oluşturmak için izniniz yok. |
| Kategori 90040104 | TablePermissionDeleteIsMissing | {0) varlığını silmek için izniniz yok. |
| Kategori 90040105 | TablePermissionAppendIsMissngDuringAssociationChange | {0} tablosunu {1} ile ilişkilendirme veya ikisi arasındaki ilişkiyi kaldırma izniniz yok. |
| Kategori 90040106 | TablePermissionAppendToIsMissingDuringAssociationChange | {1} tablosunu {0} ile ilişkilendirme veya ikisi arasındaki ilişkiyi kaldırma izniniz yok |
| Kategori 90040107 | HttpAntiForgeryException | Forgery tanımlama bilgisi simgesi ve form alanı belirteci eşleşmiyor. |
| 90040109 | MissingPortalSessionCookie | Oluşturma yöntemine geçersiz bir oturum belirteci geçirildi. |
| 9004010C | ResourceDoesNotExists | "{0}" segmenti için kaynak bulunamadı. |
| 9004010D | CDSError | CDS hatası oluştu. |
HTTP durum kodu 500 ile işlenmeyen hatalara yönelik yanıt, şu hatayı döndürür "İstek işlenirken beklenmedik bir hata oluştu."