मैं http स्टेटस कोड VB.NET रेस्ट एपीआई कैसे लौटाऊं?

प्रोग्रामिंग


मैं मोबाइल ऐप्स डेवलपर्स के लिए एक रेस्ट एपीआई बना रहा हूं। मैं चाहता हूं कि जब भी वे मेरे एपीआई पर कॉल करें तो पहले यह जांच लें कि लौटाई गई स्थिति 200 है या कुछ और। इसलिए मैंने गूगल पर खोजा और यह लिंक पाया जो बाकी एपीआई एएसपीनेट के स्टेटस कोड को संभाल रहा है:
वेब एपीआई प्रतिक्रिया बनाएं[^]

लेकिन मेरा रेस्ट एपीआई पहले से ही 115 वेबमिथड्स के साथ एक अलग तरीके से बनाया गया है और मैं अपने सभी तरीकों को बदल नहीं सकता और उन्हें इस तरह नहीं बना सकता। नीचे एक उदाहरण दिया गया है कि मेरी वेब विधियाँ कैसे बनाई गई हैं:

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

जहां ‘InfoAndTerms’ ‘DataTypes’ मॉड्यूल में एक संरचना है

तो मेरा प्रश्न है: क्या प्रतिक्रिया के रूप में ऑब्जेक्ट के साथ http स्थिति कोड वापस करने का कोई अन्य तरीका नहीं है?
आपकी मदद की सराहना की जाती है

मैंने क्या प्रयास किया है:

मैंने यह कोशिश की है:

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

लेकिन जब मैंने इस पद्धति का परीक्षण किया तो मुझे 500 के बजाय 400 स्थिति मिली। तो समस्या क्या हो सकती है?

समाधान 1

अंततः मुझे एक समाधान मिल गया:

के अनुसार इस लिंक हमें बस ‘WebFaultException’ का उपयोग करना होगा जो http स्थिति को बदल देगा। अब हैंडल की गई त्रुटि को वापस करने का एक अच्छा तरीका भी है:

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

फिर स्थिति बदल जाएगी और लौटाई गई वस्तु एक त्रुटि होगी। व्यक्तिगत रूप से मैं किसी अन्य चीज़ के बजाय ऑब्जेक्ट त्रुटि लौटाना पसंद करता हूँ…

प्रोत्साहित करना 🙂

コメント

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