2011-09-28 10 views
21

के लिए आरईएसटी एपीआई बनाना मेरे पास एएसपी.नेट एमवीसी 3 का उपयोग करके विकसित एक वेबसाइट है।
अब मैं दूसरों के उपयोग के लिए एक आरईएसटी एपीआई का पर्दाफाश करना चाहता हूं जो वेबसाइट के समान सुविधाओं का पर्दाफाश करेगा।मौजूदा एमवीसी आधारित वेबसाइट

वेबसाइट में, एक बार उपयोगकर्ता ने लॉग इन किया है और एक डीबी के खिलाफ प्रमाणित प्रमाण पत्र, सत्र उपयोगकर्ता के लॉग-इन स्थिति का प्रबंधन करता है।
मैं आरईएसटी एपीआई के बराबर कैसे करूं, जहां कई विधियों को उजागर करने के लिए उपयोगकर्ता को लॉग इन करने की आवश्यकता होती है (या कम से कम वैध उपयोगकर्ता नाम और पासवर्ड)?

इसके अलावा, वेबसाइट के लिए सबसे अच्छा तरीका आरईएसटी एपीआई का भी उपयोग करना होगा (एपीआई मानते हुए साइट द्वारा आवश्यक सभी कार्यक्षमताओं को कवर करता है)?

एएसपी.नेट एमवीसी 3 इस के लिए उपयुक्त कितना अच्छा है - बेशक यह ध्यान में रखते हुए कि साइट इस ढांचे का उपयोग कर पहले से मौजूद है?

उत्तर

9

मैंने एक ब्लॉग पोस्ट लिखा है कि कैसे [एएसपी.नेट एमवीसी 3 एप्लिकेशन के भीतर एक रीस्टफुल एपीआई आर्किटेक्चर बनाएं] साल पहले और साइट को जाने देने के लिए समाप्त हो गया। :( यह एक अच्छी शुरुआत अगर आप अपने MVC आवेदन में REST API का निर्माण पर ले जाना चाहते हैं एक अच्छा समाधान के लिए वेबएपीआई के प्रयोग पर @tugberk द्वारा answer देखें हो सकता है।

+0

हां, यह इस विषय के बारे में वेब पर बात करने वाले सर्वोत्तम लेखों में से एक है, मैंने इसे कुछ दिन पहले देखा, वास्तव में अच्छा, धन्यवाद। –

+2

मुझे लगता है कि लिंक नीचे है। –

+0

यदि यह पहुंच योग्य नहीं है तो वेब पर सबसे अच्छा लेख नहीं है :( –

4

नोट:

WCF वेब एपीआई अब ASP.NET वेब एपीआई और बहुत बदल गया है। बीटा संस्करण अब उपलब्ध है। अधिक जानकारी के लिए: Getting Started With ASP.NET Web API - Tutorials, Videos, Samples

मैं ऐसा करने के लिए डब्ल्यूसीएफ वेब एपीआई के साथ जाऊंगा। एएसपी.नेट एमवीसी भी आपके डेटा को उजागर करने में सक्षम और सक्षम है लेकिन डब्ल्यूसीएफ वेब एपीआई अधिक सक्षम है यदि आप अपने उपयोगकर्ताओं को अपना डेटा उजागर करने पर विचार करते हैं। अपने सिस्टम में आरईएसटी वेब एपीआई का उपयोग करना और एकीकृत करना आसान है।

प्रमाणीकरण के लिए, एपीआई कुंजी हमेशा इस प्रकार के परिदृश्य के लिए सबसे अच्छा तरीका है। यहाँ कैसे आप WCF वेब एपीआई के साथ एपीआई प्रमाणीकरण लागू कर सकते हैं पर एक अच्छा उदाहरण है:

http://weblogs.asp.net/cibrax/archive/2011/04/15/http-message-channels-in-wcf-web-apis-preview-4.aspx

नोट:

वे सिर्फ हफ्ते पहले और संदेश का पूर्वावलोकन संस्करण 5 जोड़े को जारी किया गया जहां तक ​​मैं जानता हूं, चैनल को संदेश हैंडलर में बदल दिया गया है। लेकिन उपर्युक्त आलेख आपको एक विचार देना चाहिए।

सुरक्षा कार्यान्वयन के लिए, नीचे के रूप में अच्छी तरह से मदद कर सकता है:

wcf Authentication Token Implementation - How to do

+0

तुम भी कैसे मैं मूल प्रमाणीकरण JQuery के साथ काम करते हुए देखना साथ WCF पाने में कामयाब रहे है, उन पर अपने ब्लॉग पर देख सकते हैं [sameproblemmorecode] (http://sameproblemmorecode.blogspot.com/2011/10/creating-secure-restfull-wcf-service.html) – Luuk

6

ASP.NET MVC इस बात के लिए बहुत अच्छी तरह से अनुकूल है। यद्यपि आप अन्य दृष्टिकोणों (जैसे डब्ल्यूसीएफ) का उपयोग कर सकते हैं, मैं एमवीसी के साथ रहूंगा क्योंकि आपके पास पहले से ही एक कार्यरत साइट है जिसे अन्य उपभोक्ताओं के लिए उजागर करने की आवश्यकता है।

भी देखें मेरे अन्य जवाब:

Which is better for building an API for my website: MVC or Ado.net data services?

1

एएसपी नेट MVC इस लिए एक शानदार विकल्प है। मैंने कई एएसपी एमवीसी बनाए हैं जो रीस्टफुल सेवाओं और वेबसाइटों के रूप में कार्य करते हैं।

डिजाइन पैराडाइम का सारांश करने के लिए मैं उपयोग करता हूं, प्रत्येक नियंत्रक के पास एक क्रिया होती है जो अनुरोधित डेटा का JSON प्रतिनिधित्व करता है।कहा गया है कि सर्वर पर एक दृश्य मॉडल में डेटा लोड किया गया है, और जेएसओएन सीरियलाइज़र में बनाया गया सर्वर सर्वर का ख्याल रखता है, जबकि एक jQuery दृश्य मेरे वास्तविक वेबपृष्ठों के उपभोग के लिए डेटा को वापस लोड करता है।

साइट पर प्रत्येक नियंत्रक पर इंडेक्स क्रियाएं होती हैं जो आवश्यक मार्कअप को छोड़ती हैं, लेकिन डेटा नहीं। jQuery दस्तावेज़। पहले से ही मेरे बाकी एपीआई से डेटा में लोड पृष्ठों पर लोड विधियां, लेकिन साइट पर सही निर्माण करें।

महान नमूना कोड के लिए चेकआउट नेर्ड डिनर। http://nerddinner.com/

सुरक्षा के बारे में, मुझे लगता है कि मेरा अनुभव आपके से अलग होगा। एएसपी एमवीसी सक्रिय निर्देशिका के साथ बहुत अच्छी तरह से एकीकृत करता है यदि आपके उपयोगकर्ता एक ही डोमेन में हैं और एडी प्रमाण-पत्र हैं। यह एकमात्र तरीका है जिसका मैंने उपयोग किया है, और आसानी, सफलता और संतुष्टि के साथ।

मेरे पास सहकर्मी अन्य एपीआई के साथ बातचीत करते हैं जो एक अधिकृत विधि को कॉल करने पर टोकन देते हैं। प्राप्त टोकन ग्राहक अनुरोधों को प्रत्येक अनुरोध पर स्टोर करने और वापस करने की ज़िम्मेदारी होगी, लेकिन मैं कार्यान्वयन विवरण के माध्यम से आपसे बात नहीं कर सकता, क्योंकि मेरे पास उस मोर्चे पर व्यक्ति का अनुभव नहीं है।

+0

डेटा लोड पर अधिक स्पष्ट होना चाहिए था। मैं आपके दस्तावेज़ को पहले से कॉल करता हूं jquery.getJSON विधियों को आपके JSON डेटा की सेवा करने वाले नियंत्रक विधियों के अनुरोधों को वापस फायर करने के लिए आग लगाना। साइड लाभ बाद में एजेक्स डेटा रिटर्न के साथ तेजी से पेज लोड है। – Evan

1

मैं के साथ जाना होगा एक WCF वेब सेवा आधारित कार्यान्वयन इस प्रकार है।

  • लपेटें उदाहरण
  • के लिए yourproject.businessservices एक प्रमाणीकरण वेब सेवा जो प्रति एक गैर repeatable टोकन उत्पन्न होगा बनाएं रूप में नामित एक अलग dll परियोजना में सभी अपने व्यापार तर्क उपयोगकर्ता लॉगिन
  • यह लॉगिन भंडार उपयोगकर्ता के आवश्यक विवरण जो एक रपट समाप्ति
  • होना चाहिए उपयोगकर्ता कैश पर नहीं पहुंचा है, तो के लिए चलो एक घंटे का कहना है मेम्कैश की तरह एक कैश में टोकन के साथ, कैश समाप्त हो रहा है और उपयोगकर्ता को
  • लॉग इन किया गया है यदि उपयोगकर्ता इसका उपयोग कर रहा है तो कैश विस्तारित हो रहा है।

    WCF सेवाओं तरफ,

  • एपीआई बनाएं प्रमाणीकरण

  • सभी WCF तरीकों पर टोकन वापस जाने के लिए इस सत्र id जो मान्य किए जाने की आवश्यकता होगा

    लाभ यह है कि है wcf विधियों को एक्सएमएल या जेसन प्रारूप को वापस करने के लिए उजागर किया जा सकता है और सामान्य वेब सेवाओं के रूप में भी इस्तेमाल किया जा सकता है।

    [WebInvoke (विधि = "GET", ResponseFormat = WebMessageFormat.Xml, Bodystyle = WebMessageBodyStyle.Bare, UriTemplate = "/ MyModule/XML/GetData/{customerSessionId}")] [WebInvoke (विधि = "GET" , ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle।लिपटा, UriTemplate = "/ MyModule/JSON/GetData/{customerSessionId}")]

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

  • कोई संबंधित समस्या नहीं^_^