Lỗi API là gì
Soạn các yêu cầu HTTP và xử lý lỗi cho API Web cổng thông tin
Trang này có hữu ích không?
Trang này có hữu ích không?
Có
Không
Bạn còn phản hồi nào nữa không?
Ý kiến phản hồi sẽ được gửi đến Microsoft: Bằng cách nhấn nút gửi, ý kiến phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Chính sách về quyền riêng tư. Show
Gửi
Cảm ơn bạn. Trong bài viết nàyViệc tương tác với API Web bao gồm việc tạo yêu cầu HTTP với các tiêu đề bắt buộc và xử lý các phản hồi HTTP, bao gồm mọi lỗi. Quan trọng
URL API Web và cách tạo phiên bảnTạo URL API Web bằng cách sử dụng định dạng trong bảng sau.
Ví dụ: sử dụng định dạng này khi tham chiếu một trường hợp: https://contoso.powerappsportals.com/_api/case Tất cả các tài nguyên API Web sẽ tuân theo quyền bảng cổng thông tin trong ngữ cảnh với các vai trò web. Phương thức HTTPCác yêu cầu HTTP có thể dùng các loại phương thức khác nhau. Tuy nhiên, API Web cổng thông tin chỉ hỗ trợ các phương thức trong bảng sau:
Tiêu đề HTTPAPI Web chỉ hỗ trợ JSON. Mỗi tiêu đề HTTP phải bao gồm:
Phiên bản OData hiện tại là 4.0, nhưng các phiên bản trong tương lai có thể cho phép các khả năng mới. Sử dụng cú pháp sau để đảm bảo không có sự mơ hồ về phiên bản OData sẽ được áp dụng cho mã của bạn trong tương lai: Cú phápAccept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0Ví dụ: Hàm AJAX gói cho mã thông báo CSRF(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)Ví dụ: Truy xuất dữ liệu bảngwebapi.safeAjax({ type: "GET", url: "/_api/contacts?$select=firstname,lastname", contentType: "application/json", success: function (res) { console.log(res); } });Ví dụ: Tạo dữ liệu bảngwebapi.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")) } });Ví dụ: Cập nhật dữ liệu bảngwebapi.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); } });Ví dụ: Xóa dữ liệu bảngwebapi.safeAjax({ type: "DELETE", url: "/_api/accounts(00000000-0000-0000-0000-000000000001)", contentType: "application/json", success: function (res) { console.log(res); } });Xác định mã trạng tháiMỗi phản hồi của yêu cầu HTTP bao gồm một mã trạng thái. Mã trạng thái do API Web cổng thông tin trả về bao gồm:
Lỗi phân tích cú pháp từ phản hồiHãy xem xét phản hồi HTTP mẫu sau đây vẫn bao gồm lỗi bên trong: { "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.." } } }Mã lỗiMã lỗi hiển thị ở định dạng thập lục phân cho tất cả các kịch bản được xử lý. Bảng sau đây liệt kê từng mã lỗi với tên và thông báo tương ứng.
Phản hồi cho các lỗi chưa được xử lý với mã trạng thái HTTP 500 sẽ trả về lỗi "Đã xảy ra lỗi không mong muốn khi xử lý yêu cầu". Xem thêmTổng quan API web cổng thông tin |