दिलचस्प पोस्ट
रेलवे पर रूबी एक सरणी के__अगला `जीआईटी मर्ज 'और` जीआईटी मर्ज – नो-एफएफ` के बीच अंतर क्या है? रैंडम स्ट्रिंग जनरेटर एक ही स्ट्रिंग रिटर्निंग आईफोन आईवर नामकरण सम्मेलन एक ऐसी सरणी से तत्वों की एक जोड़ी ढूंढें जिनकी राशि दी गई संख्या के बराबर होती है Django मल्टी किरायेदारी उद्देश्य-सी में संपत्ति को रिहा करने के लिए मुझे गेटर का उपयोग क्यों नहीं करना चाहिए? एक दौड़ की स्थिति क्या है? मुझे आईडीई का उपयोग क्यों करना चाहिए? वेबव्यू के भीतर संसाधनों का लिंक – आईफोन ddply त्रुटि का अर्थ: 'नाम' विशेषता वेक्टर के समान लंबाई होना चाहिए सिस्टम ट्रे को ऐप को छोटा करें तुलना ऑपरेटरों को 'ट्यूपल' और 'टाई' के माध्यम से लागू करना, एक अच्छा विचार है? आईओएस 8 एक दृश्य स्नैपशॉट जो खाली स्नैपशॉट में परिणाम प्रदान नहीं किया गया है जब मैं "रन" कमांड को निष्पादित करता हूँ तो मैं कैसे उपयोग करता है डिफ़ॉल्ट पोर्ट (9000) को बदल सकता हूँ?

सर्विसेटेक रीस्ट एपीआई और कॉरस

कोई भी जानता है कि सर्इसस्टैक्स ढांचे का उपयोग सीओआरएस REST सेवाएं बनाने के लिए किया जा सकता है?

मैं दिनों के लिए WCF REST सामान के खिलाफ मेरे हादसे की पीट कर रहा हूं – बिल्कुल बेकार

धन्यवाद

वेब के समाधान से एकत्रित समाधान "सर्विसेटेक रीस्ट एपीआई और कॉरस"

CorsFeature प्लगइन का उपयोग करना

ग्लोबल CORS समर्थन को सक्षम करना

अब हमारे पास एक CorsFeature है जो CORS हेडर को नीचे प्लगइन में लपेटता है ताकि आपकी सेवा सेवा सेवाओं के लिए CORS समर्थन जोड़ना अधिक आसान हो सके।

आम तौर पर यह अब जरूरी है:

Plugins.Add(new CorsFeature()); 

जो डिफ़ॉल्ट मान का उपयोग करता है:

 CorsFeature(allowedOrigins:"*", allowedMethods:"GET, POST, PUT, DELETE, OPTIONS", allowedHeaders:"Content-Type", allowCredentials:false); 

आप डिफ़ॉल्ट से मेल खाते के किसी भी मूल्य को छोड़ सकते हैं। उदाहरण अगर आप बस प्राप्त और पोस्ट अनुरोधों की अनुमति प्राप्त विधियों को प्रतिबंधित करना चाहते हैं, तो आप यह कर सकते हैं:

 Plugins.Add(CorsFeature(allowedMethods:"GET, POST")); 

विश्व स्तर पर सभी विकल्प अनुरोधों के लिए CORS सक्षम करें

CorsFeature (या मैन्युअल ग्लोबल हेडर) पंजीकृत होने के बाद, आप वैकल्पिक रूप से सभी पंजीकृत वैश्विक हेडर (अर्थात CorsFeature में हेडर) और शॉर्ट सर्किट के साथ सभी विकल्प अनुरोधों को फेंकने के लिए पूर्व-अनुरोध फ़िल्टर जोड़कर सभी विकल्प अनुरोधों के लिए CORS को सक्षम करने का विकल्प चुन सकते हैं:

 this.PreRequestFilters.Add((httpReq, httpRes) => { //Handles Request and closes Responses after emitting global HTTP Headers if (httpReq.Method == "OPTIONS") httpRes.EndRequest(); //add a 'using ServiceStack;' }); 

CORS प्रति-सेवा समर्थन सक्षम करना

उपर्युक्त प्लगइन का उपयोग करने के बजाय, सर्विसस्टैक्स आपको [EnableCors] रिस्पांस फ़िल्टर विशेषता का उपयोग करके प्रति-सेवा के आधार पर कॉरस को सक्षम करने की अनुमति देता है, जो कि इसके बाद के संस्करण के समान डिफ़ॉल्ट हैं। उदाहरण के साथ उपरोक्त के रूप में आप केवल जीईटी, पोस्ट को सक्षम कर सकते हैं:

 [EnableCors(allowedMethods:"GET,POST")] public class MyService : Service { ... } 

मैन्युअल रूप से कॉरस सक्षम करना

सर्विस स्टैक की सुंदरता यह है कि यह बेहद लचीला और सरल कोर पर बनाया गया है। हम हर चीज पर मजबूत-टाइप एपीआई बनाने की कोशिश नहीं करते, क्योंकि भविष्य में नए एचटीटीपी हेडर्स / स्टेटसकोड्स के अस्तित्व में आने की भविष्यवाणी करना असंभव है। इसलिए जब भी हम सामान्य कार्यों को पूरा करने के लिए सुविधाजनक व्यवहार प्रदान करते हैं, हम एक लचीली एपीआई भी प्रदान करते हैं जो आपको किसी भी इच्छित HTTP आउटपुट को कॉन्फ़िगर करने देता है।

वैश्विक HTTP हेडर सेट करना

यह है कि कैसे विश्वव्यापी रूप से आप को AppHost कॉन्फ़िग में क्रॉस उत्पत्ति साझाकरण को सक्षम करने के लिए:

 public override void Configure(Container container) { //Permit modern browsers (eg Firefox) to allow sending of any REST HTTP Method base.SetConfig(new EndpointHostConfig { GlobalResponseHeaders = { { "Access-Control-Allow-Origin", "*" }, { "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS" }, { "Access-Control-Allow-Headers", "Content-Type" }, }, }); } 

एक सेवा में कस्टम HTTP हेडर रिटर्निंग

ये हेडर हर अनुरोध पर भेजे जाएंगे, वैकल्पिक रूप से आप इसे विशिष्ट वेब सेवाओं के लिए भी सक्षम कर सकते हैं, उदाहरण के लिए, हैलो वर्ल्ड वेब सेवा ले लीजिए:

 public class Hello { public string Name { get; set; } } public class HelloResponse { public string Result { get; set; } } public class HelloService : IService { public object Any(Hello request) { var dto = new HelloResponse { Result = "Hello, " + request.Name }; return new HttpResult(dto) { Headers = { { "Access-Control-Allow-Origin", "*" }, { "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS" } { "Access-Control-Allow-Headers", "Content-Type" }, } }; } } 

उपरोक्त सभी सी # कोड हैं जिन्हें आपको एक वेब सेवा विकसित करने की आवश्यकता होती है, जो तब आपके लिए सभी HTTP वर्क्स (GET, POST, आदि) और अंतर्निहित अंतपॉइंट्स, अर्थात् JSON, XML, JSV, HTML, CSV, SOAP 1.1 / 1.2 – मुफ्त में, किसी भी विन्यास या घर्षण की आवश्यकता के बिना। उपरोक्त वेब सेवा का लाइव उदाहरण जांचें

उपरोक्त समापन बिंदुओं के अतिरिक्त प्रत्येक सेवा JSONP (अजाक्स ऐप्स में क्रॉस-डोमेन सेवा कॉल को सक्षम करने के लिए एक और लोकप्रिय तरीका) के लिए उपलब्ध है, जहां प्रत्येक सेवा को जेएसओएनपी के जरिए कॉलब्रेक = सीबी पैरामीटर को क्वेरीस्ट्रिंग में जोड़कर कहा जा सकता है , जैसे:

http://www.servicestack.net/ServiceStack.Hello/servicestack/hello/world?callback=cb

यह सर्विसस्टैक उपयोग करने के लचीलेपन और उत्पादकता जीत का एक और उदाहरण है, जहां आप सचमुच अपनी वेब सेवा में घर्षण से मुक्त लचीलापन और अभिव्यक्ति की स्वतंत्रता प्रदान करते हैं, वस्तुतः कुछ भी बदले में लौटते हैं और उम्मीद के मुताबिक यह क्रमबद्ध होता है

यह डब्लूसीएफ़ से अधिक उपयोग करने में आसान नहीं है (अधिक से अधिक आउट-द-बॉक्स फीचर के साथ), लेकिन यह बहुत तेज़ है जहां अपने सभी घटकों को अधिकतम प्रदर्शन के लिए अत्यधिक अनुकूलित किया गया है ।

बस एफवाईआई, जैसा कि मुझे पता चलना मुश्किल था कि कॉरस प्लगइन कहाँ रहते थे। शायद मैं सिर्फ मोटी हूँ

यह ServiceStack.ServiceInterface.CorsServiceStack.ServiceInterface.CorsServiceStack.ServiceInterface.Cors