2012-05-10 35 views
7

में आरईएसटी सर्वर मेरे पास डेल्फी 7 (आईसीएस + कुछ स्टफ के साथ) में मेरे एप्लिकेशन में एम्बेडेड एक बहुत ही सरल स्वयं बनाया गया आरईएसटी सर्वर था, यह काम करता है लेकिन & को बनाए रखना आसान नहीं है। अब मैं डेल्फी एक्सई 2 प्रो (डेटा स्नैप के बिना) का उपयोग करता हूं और मैं एक और मानक समाधान के लिए बदल जाऊंगा, लेकिन फिर भी सरल।डेल्फी XE2 प्रो

क्या ऐसा करने में कोई आसान काम है?

उत्तर

6

Habari Web Components ढांचा डेल्फी 200 और नए के लिए एक सरल (वाणिज्यिक) HTTP सर्वर ढांचा है। TdjRestfulComponent के साथ इसमें एक आरईएसटी एक्सटेंशन भी शामिल है। (मैं इन पुस्तकालयों डेवलपर हूं)

TdjRestfulComponent विन्यास एक विशेषता/एनोटेशन की तरह शैली में या एक और अधिक परंपरागत प्रक्रियात्मक शैली तरीके से किया जा सकता है।

सभी HTTP विधियों और सामग्री-प्रकारों को अलग-अलग अज्ञात तरीकों से मैप किया जा सकता है, और फिर भी वही संसाधन यूआरआई (एक यूआरआई, विभिन्न संसाधन प्रस्तुतिकरण - अनुरोधित सामग्री प्रकार के आधार पर) साझा करते हैं। उदाहरण के लिए, HTML, XML या JSON में संसाधन /myresource प्रतिनिधित्व करने के लिए, इसे इस तरह विन्यस्त किया जा सकता:

// respond to HTML browser GET request 
&Path('myresource'); 
&Produces('text/html'); 
GET(procedure(Request: TRequest; Response: TResponse) 
begin 
    Response.ContentText := '<html>Hello world!</html>'; 
end); 

// respond to XML client 
&Path('myresource'); 
&Produces('application/xml'); 
GET(procedure(Request: TRequest; Response: TResponse) 
    begin 
    Response.ContentText := '<xml>Hello world!</xml>'; 
    end); 

// respond to JSON client 
&Path('myresource'); 
&Produces('application/json'); 
GET(procedure(Request: TRequest; Response: TResponse) 
    begin 
    Response.ContentText := '{"msg":"Hello world!"}'; 
    end); 

घटक भी पथ मानकों का समर्थन करता है:

&Path('orders/{orderId}/lines/{lineNo'); 

जैसी URL पार्स जाएगा
http://mydomain.local:8080/context/orders/65432/lines/1 
अतिरिक्त क्वेरी पैरामीटर में

(orderId=65431 और lineNo=1)

,210
2

मुझे नहीं पता कि यह आवश्यक जितना आसान है, लेकिन आप हमारे mORMot framework पर एक नज़र डाल सकते हैं।

यह क्लाइंट-सर्वर ओआरएम और एक इंटरफ़ेस-आधारित सेवाओं (जैसे डब्ल्यूसीएफ) के साथ एक संपूर्ण रीस्टफुल सर्वर है। यह हल्का और तेज़ है, लेकिन इसमें कई सुविधाएं भी हैं।

आप जो भी प्रकार के अनुप्रयोग चाहते हैं वह कर सकते हैं। उदाहरण के लिए, कुछ उपयोगकर्ता अपने ओआरएम का उपयोग नहीं करते हैं, न ही इसके एसओए का उपयोग करते हैं, लेकिन इसे एक बहुत तेज़ रीस्टफुल सर्वर के रूप में उपयोग करें।

यह डेल्फी के किसी भी संस्करण के साथ डेल्फी 6 से XE2 तक काम करता है, और किसी विशेष लाइसेंस की आवश्यकता नहीं है: यह स्टार्टर संस्करण के साथ भी काम करेगा। यहां तक ​​कि डेटाबेस कनेक्शन भी शामिल हैं।

यह स्वयं द्वारा "मानक" नहीं है, लेकिन यह रीस्ट, HTTP, JSON जैसे प्रसिद्ध मानकों का उपयोग करता है। इसमें प्रति-यूआरआई बिल्ड-इन प्रमाणीकरण है, और एक पूर्ण प्रति-इंटरफ़ेस/प्रति-विधि सुरक्षा नीति है। दस्तावेज के 800 से अधिक पृष्ठों, और प्रतिगमन परीक्षणों का एक पूरा सेट शामिल थे। त्वरित शुरुआत के लिए, take a look at the samples - मुझे संदेह है कि आपको यह आसान मिल सकता है।

और यह एक बियर की तरह नि: शुल्क है, और एक पक्षी की तरह।

+2

अरनॉड: हाँ मैं बहुत समय के बाद से अपनी परियोजनाओं को देखने के लिए, मैं एक सरल समाधान नहीं मिला है लेकिन mORMot एक अच्छे उम्मीदवार है ... – philnext

+0

@philnext तुम्हें क्या लगता है mORMot आसान नहीं है? एक विश्वसनीय सर्वर के आधार पर इसमें कई चीजें हैं। लेकिन इसका उपयोग सादा KISS है: नमूने पर एक नज़र डालें। इसका उपयोग केवल कुछ उपयोगकर्ताओं द्वारा ओआरएम या एसओए भाग के बिना किया जाता है। लेकिन मुझे लगता है कि इंटरफ़ेस आधारित एसओए, और जेएसओएन अंतर्निहित धारावाहिकता, आपके लिए एक आवश्यकता है। जब आपका रीस्टफुल एप्लाइशन बड़ा हो जाएगा, तो आपको पहिया को फिर से शुरू नहीं करना पड़ेगा! वहां एक संचार परत की आवश्यकता है [http: //blog.synopse।जानकारी/पोस्ट/2012/04/25/द-मोरमोट-रवैया), जब आप एक वास्तविक अनुप्रयोग के लिए एक विश्वसनीय सर्वर बनाना चाहते हैं। –

+0

जैसा कि मुझे आपकी परियोजनाओं की गुणवत्ता पता है, मुझे लगता है कि, हाँ, मोरमोट सरल और साफ ओआरएम है। लेकिन अब मैं बस एक आरईएसटी समाधान चाहता हूँ। हो सकता है कि मोरमोट इसके लिए सबसे अच्छा उम्मीदवार हो, और सुनिश्चित करें कि मैं इसका परीक्षण करूंगा ... – philnext

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