[ad_1]
Saya sedang membangun API lainnya untuk pengembang aplikasi seluler. Saya ingin mereka setiap kali memanggil API saya untuk memeriksa terlebih dahulu apakah status yang dikembalikan adalah 200 atau yang lainnya. Jadi saya mencari di Google dan menemukan tautan ini yang menangani kode status API lainnya asp.net:
membuat respons Web API[^]
Tetapi Rest API saya sudah dibuat dengan cara lain dengan 115 metode web dan saya tidak dapat mengubah semua metode saya dan menjadikannya seperti ini. Di bawah ini adalah contoh bagaimana metode web saya dibuat:
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
Dimana ‘InfoAndTerms’ adalah Struktur dalam modul ‘DataTypes’
Jadi pertanyaan saya adalah: apakah tidak ada cara lain untuk mengembalikan kode status http dengan objek sebagai respons?
Bantuan Anda dihargai
Apa yang saya coba:
Saya sudah mencoba ini:
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
Tetapi ketika saya menguji metode ini saya mendapat status 400, bukan 500. JADI, apa masalahnya?
Solusi 1
Akhirnya saya menemukan solusi:
Berdasarkan Link ini kita hanya perlu menggunakan ‘WebFaultException’ yang akan mengubah status http. Sekarang ada juga metode yang bagus untuk mengembalikan kesalahan yang ditangani:
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
Maka statusnya akan berubah dan objek yang dikembalikan akan error. Secara pribadi saya lebih suka mengembalikan kesalahan objek daripada yang lain …
Bersulang 🙂
[ad_2]
コメント