[ad_1]
Tôi đang xây dựng API còn lại cho các nhà phát triển ứng dụng dành cho thiết bị di động. Tôi muốn họ mỗi lần gọi API của tôi hãy kiểm tra trước xem trạng thái trả về là 200 hay trạng thái nào khác. Vì vậy, tôi đã tìm kiếm và tìm thấy liên kết này đang xử lý mã trạng thái của API asp.net còn lại:
tạo phản hồi API Web[^]
Nhưng Rest API của tôi đã được xây dựng theo cách khác với 115 phương thức web và tôi không thể thay đổi tất cả các phương thức của mình và biến chúng thành như thế này. Dưới đây là ví dụ về cách xây dựng phương thức web của tôi:
Public Function InfoAndTerms(ByVal Lang As String) As Information() Implements IService.InfoAndTerms Dim result() As Information Try ' Do something and fill result Catch ex As Exception ' Do something else Finally InfoAndTerms = result End Try End Function
Trong đó ‘InfoAndTerms’ là Cấu trúc trong mô-đun ‘DataTypes’
Vì vậy, câu hỏi của tôi là: không có cách nào khác để trả về mã trạng thái http với đối tượng làm phản hồi không?
Sự giúp đỡ của bạn được đánh giá cao
Những gì tôi đã thử:
Tôi đã thử điều này:
Public Function InfoAndTerms(ByVal Lang As String) As Information() Implements IService.InfoAndTerms Dim result() As Information Try ' Do something and fill result Catch ex As Exception Throw New System.Web.HttpException(500, "Error - InfoAndTerms") Finally InfoAndTerms = result End Try End Function
Nhưng khi tôi thử nghiệm phương pháp này, tôi nhận được trạng thái 400 thay vì 500. Vậy vấn đề có thể là gì?
Giải pháp 1
Cuối cùng tôi đã tìm được giải pháp:
Dựa theo liên kết này chúng ta chỉ cần sử dụng ‘WebFaultException’ để thay đổi trạng thái http. Bây giờ cũng có một phương pháp hay để trả về lỗi đã xử lý:
Public Function TestMethod2(ByVal name As String) As String Implements IService.TestMethod2 If name = "" Then Dim str As New ErrMessage str.intErr = 1 str.strErrMessage = "bla bla bla" Throw New WebFaultException(Of ErrMessage)(str, HttpStatusCode.BadRequest) End If Return name End Function
Khi đó trạng thái sẽ thay đổi và đối tượng trả về sẽ có lỗi. Cá nhân tôi thích trả về lỗi đối tượng thay vì bất cứ điều gì khác …
Chúc mừng 🙂
[ad_2]
コメント