अनुरोध के अनुसार, एक सरल REST जैसा दृष्टिकोण। यह लगभग उसी तरह से काम करता है जैसे कि कोडमेवनिस का समाधान काम करता है लेकिन सामग्री बातचीत के लिए एक्सेडर शीर्षक का उपयोग करता है। पहले रूट फ़ाइल:
GET /user/{id} Application.user
POST /user/ Application.createUser
PUT /user/{id} Application.updateUser
DELETE /user/{id} Application.deleteUser
आप यहां किसी भी प्रकार की सामग्री निर्दिष्ट नहीं करते हैं। ऐसा करना IMHO केवल तभी आवश्यक है जब आप कुछ संसाधनों के लिए "विशेष" URI चाहते हैं। जैसे /users/feed/
एटम / आरएसएस में हमेशा लौटने का मार्ग घोषित करना ।
एप्लिकेशन नियंत्रक इस तरह दिखता है:
public static void createUser(User newUser) {
newUser.save();
user(newUser.id);
}
public static void updateUser(Long id, User user) {
User dbUser = User.findById(id);
dbUser.updateDetails(user); // some model logic you would write to do a safe merge
dbUser.save();
user(id);
}
public static void deleteUser(Long id) {
User.findById(id).delete();
renderText("success");
}
public static void user(Long id) {
User user = User.findById(id)
render(user);
}
जैसा कि आप देख सकते हैं कि मैंने केवल getUserJSON विधि को हटा दिया और getUser विधि का नाम बदल दिया। विभिन्न प्रकार के काम करने के लिए अब आपको कई टेम्पलेट बनाने होंगे। प्रत्येक वांछित सामग्री प्रकार के लिए एक। उदाहरण के लिए:
user.xml:
<users>
<user>
<name>${user.name}</name>
. . .
</user>
</users>
user.json:
{
"name": "${user.name}",
"id": "${user.id}",
. . .
}
user.html:
<html>...</html>
यह दृष्टिकोण ब्राउज़र को हमेशा HTML दृश्य देता है, क्योंकि सभी ब्राउज़र अपने स्वीकार शीर्षलेख में एक पाठ / HTML सामग्री प्रकार भेजते हैं। अन्य सभी क्लाइंट (संभवतः कुछ जावास्क्रिप्ट-आधारित AJAX अनुरोध) अपने स्वयं के वांछित सामग्री प्रकार को परिभाषित कर सकते हैं। JQuerys ajax () विधि का उपयोग करके आप निम्नलिखित कार्य कर सकते हैं:
$.ajax({
url: @{Application.user(1)},
dataType: json,
success: function(data) {
. . .
}
});
जो आपको JSON प्रारूप में ID 1 के साथ उपयोगकर्ता के बारे में विवरण प्राप्त करना चाहिए। वर्तमान में Play HTML, JSON और XML का मूल रूप से समर्थन करता है, लेकिन आप आधिकारिक दस्तावेज़ का पालन करके या सामग्री बातचीत मॉड्यूल का उपयोग करके आसानी से एक अलग प्रकार का उपयोग कर सकते हैं ।
यदि आप विकास के लिए ग्रहण का उपयोग कर रहे हैं, तो मेरा सुझाव है कि REST क्लाइंट प्लगइन का उपयोग करें जो आपको अपने मार्गों और उनके संबंधित सामग्री प्रकार का परीक्षण करने देता है।