Bagaimana cara mengembalikan kode status http VB.NET rest API

pemrograman


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 🙂

コメント

タイトルとURLをコピーしました