2015-03-20 6 views
5

मैं StrongLoop लूपबैक HTTP प्रतिक्रिया कोड और हेडर अनुकूलित करने के लिए एक तरह से तलाश कर रहा हूँ अनुकूलित करने के लिए कैसे।StrongLoop लूपबैक: HTTP प्रतिक्रिया कोड और हैडर

मैं कुछ कंपनी के व्यापार REST API के बारे में नियमों का पालन करना चाहते हैं।

विशिष्ट मामला, जेएसओएन में वर्णित मॉडल के लिए, कोड 201 + हेडर सामग्री-स्थान (लूपबैक के डिफ़ॉल्ट प्रतिक्रिया कोड 200 के बजाय सामग्री-स्थान शीर्षलेख के बिना) के अनुरोध के जवाब देने के लिए HTTP है।

यह लूपबैक का उपयोग कर ऐसा करने के लिए संभव है?

+0

तो .. मुझे लगता है कि आप इसे [मिडलवेयर के टुकड़े] (docs.strongloop.com/display/public/LB/Defining+middleware) के साथ कर सकते हैं, लेकिन मुझे एक उदाहरण काम करने में परेशानी हो रही है। मैं हालांकि कोशिश करने जा रहा हूँ। – jakerella

उत्तर

4

दुर्भाग्यवश ऐसा करने का तरीका थोड़ा मुश्किल है क्योंकि लूपबैक में सभी एपीआई से आने वाली प्रतिक्रियाओं को संशोधित करने के लिए आसानी से हुक नहीं होते हैं। इसके बजाय, आप एक बूट स्क्रिप्ट जो afterRemote विधि का उपयोग कर में हुक में प्रत्येक मॉडल के लिए कुछ कोड जोड़ने की आवश्यकता होगी:

/server/boot/ अंदर एक फ़ाइल जोड़ें (नाम महत्वपूर्ण नहीं है):

module.exports = function(app) { 

    function modifyResponse(ctx, model, next) { 
    var status = ctx.res.statusCode; 
    if (status && status === 200) { 
     status = 201; 
    } 
    ctx.res.set('Content-Location', 'the internet'); 
    ctx.res.status(status).end(); 
    } 

    app.models.ModelOne.afterRemote('**', modifyResponse); 
    app.models.ModelTwo.afterRemote('**', modifyResponse); 
}; 
+1

धन्यवाद जेकरेला, यह बहुत अच्छी तरह से काम करता है और मेरी जरूरतों को पूरा करता है! मैं इसे अपने सभी ऐप मॉडल पर लागू करता हूं जैसे कि (ऐप.मोडल्स में var मॉडल) app.models [model] .afterRemote ('**', संशोधित रिस्पॉन्स); ' – Nicolas

+1

सभी मॉडलों के लिए कुछ करने के लिए, ऐसा लगता है जैसे आप कर सकते हैं इस तरह से जाएं: http://docs.strongloop.com/display/public/LB/Remote+methods#Remotemethods-Formattingremotemethodresponses – neemzy

+2

'ctx.res.status (status) .end(); 'एक अच्छा अभ्यास नहीं है जो आपको चाहिए 'अगला() 'पर कॉल करें और दूरस्थ मोड विधि चालू करें। –

संबंधित मुद्दे