मैं बस आरईएसटी और सर्विसस्टैक सीखना शुरू करता हूं और Route
के बारे में कुछ है जो मैं समझ नहीं पा रहा हूं। उदाहरण के लिए यदि हम गिटहब ट्यूटोरियल से बहुत ही बुनियादी हैलोवर्ल्ड उदाहरण लेते हैं और User
ऑब्जेक्ट्स के संग्रह को वापस करने के लिए इसे फिर से लिखते हैं। यहां उदाहरण है:सर्विसस्टैक में REST रूटिंग
public User
{
public string Name;
public string Address;
public int Age;
}
// Hello - request object without [Route] attribute
public class Hello
{
public string Name { get; set; }
}
public class HelloResponse
{
public IEnumerable<User> Result {get;set;}
}
public class HelloService : Service
{
public object Any(Hello request)
{
return new HelloResponse { // Collection of User object };
}
}
अब सब ठीक काम कर रहे हैं और यहां कोई समस्या नहीं है। /Hello/{name}/Address
वास्तव में इस कॉल (जीईटी) इस यूआरएल के लिए एक एकल User
Age
पैरामीटर द्वारा चयनित वापस आ जाएगी: लेकिन अब मैं की तरह एक और मार्ग यूआरएल जोड़ना चाहते हैं। मैं यह कैसे कर सकता हूं ? क्या मुझे एक और Service
जोड़ना चाहिए? और अगर यूआरएल होगा:
/Hello/{name}/{age}/Address
ऐसा लगता है कि मैं कुछ समझ में नहीं आता .....
एन्सवेयर के लिए धन्यवाद लेकिन ऐसा लगता है कि मैं 'रूट। जोड़ें' फ़ंक्शन को गलत समझता हूं। अगर मैं गलत हूं तो कृपया मुझे सही करें! 'रूट.एड'' के लिए स्कीमा है: रूट। जोड़ें <अनुरोध-डीटीओ-ऑब्जेक्ट-टाइप-इयर> ("/ <डीटीओ-ऑब्जेक्ट-नेम>/{डीटीओ-फील्ड-नेम}/{डीटीओ-फ़ील्ड-नेम} ")। क्लाइंट साइड पर यह पूर्ण डीटीओ ऑब्जेक्ट को क्रमशः यूआरएल में सेट किए गए फ़ील्ड के साथ क्रमबद्ध किया गया है और फंक्शन में सर्वर पर deserialized है जिसमें डीटीओ प्रकार और वास्तविक HTML क्रिया (POST/GET) के रूप में पैरामीटर है? क्या यह आम तौर पर सही है? – Jasper
'मार्ग।()' और '[रूट] 'विशेषता जोड़ें बिल्कुल वही हैं। यानी वे दोनों एक अनुरोध डीटीओ पर आवेदन करते हैं लेकिन मार्ग स्वयं ही कोई टेक्स्ट शाब्दिक हो सकता है जिसे आप मिलान करना चाहते हैं। रूट में चर को अनुरोध डीटीओ फ़ील्ड में मैप करने की आवश्यकता है। –
mythz