2015-01-18 6 views
7

मैं नेविगेशन मेनू आइटम की सूची के लिए REST API पर काम कर रहा हूं, सीखने के उद्देश्यों के लिए काफी कुछ। इस बिंदु तक एपीआई में सब कुछ बहुत सरल था क्योंकि मुझे केवल क्लासिक /collection/{id} सामान के माध्यम से एकल आइटम को संशोधित करना पड़ा था।आरईएसटी एपीआई के माध्यम से एकाधिक वस्तुओं के ऑर्डर को कैसे अपडेट करें?

लेकिन अब मैं order क्षेत्र मेरी डेटाबेस की में संग्रहीत सूची आइटम का क्रम बदलने के लिए चाहते हैं और निश्चित रूप की मैं नहीं चाहता कि प्रत्येक मेनू आइटम के लिए एक अनुरोध करना चाहते हैं।

तो यह उचित तरीका/सामान्य ऐसा करने का सबसे अच्छा अभ्यास क्या होगा?

मैं भेजे गए डेटा लेकिन Laravel इस की अनुमति नहीं है (जो मैं एपीआई बनाने के लिए उपयोग) में आईडी से आदेश कुंजी-मान जोड़ों के साथ /collection करने के लिए एक PUT अनुरोध भेजने कल्पना कर सकता। मैं निश्चित रूप से उस प्रतिबंध के आसपास खेल सकता हूं लेकिन मुझे लगता है कि समझदार कारण हैं कि इसकी अनुमति नहीं है।

एक और विचार PUT/collection/{ids} को आईडी की कॉमा से अलग सूची के साथ अनुरोध करना होगा, लेकिन इसके लिए मुझे आईडी और उनके ऑर्डर वैल्यू की एक महत्वपूर्ण-मूल्य सूची भी भेजनी होगी जो बहुत अनावश्यक और देय लगता है उसमें थोड़ा गंदा भी है।

तो वास्तव में सबसे अच्छा तरीका क्या होगा?

+1

रिकॉर्ड में आंशिक फ़ील्ड को अपडेट करने के लिए पैच का उपयोग करें और अनुरोधों की एक सरणी भेजें, फिर लार्वेल में उनके माध्यम से फिर से चलाएं और – Rafael

+0

पैच के अनुसार रिकॉर्ड्स अपडेट करें, वास्तव में बहुत उपयोगी लगता है, ऐसा लगता है कि मैंने उस विधि की निगरानी की है। लेकिन फिर भी यह वास्तव में मेरी समस्या का समाधान नहीं करता है - या "अनुरोधों की सरणी" से आपका क्या मतलब है? – Loilo

+0

क्या आप एक फॉर्म या AJAX तत्वों का उपयोग कर रहे हैं? – Rafael

उत्तर

1

मेरा सुझाव है कि आप संसाधन पथ के साथ एक नया मार्ग परिभाषित करें:/संग्रह/पुनरावृत्ति।

यह विधि POST अपनी नई स्थिति वाले तत्वों की सूची का उपयोग करके इसे भेजने की अनुमति देता है। सामग्री इस तरह कुछ दिखाई देगी:

{ 
    "element1": 4, 
    "element2": 1, 
    (...) 
} 

"element1" तत्व का पहचानकर्ता और संबंधित मान, उसका नया ऑर्डर है।

आप देख सकते हैं कि इस विधि को भेजने के लिए आपको जिस डेटा का उपयोग करना है, वह उस यूआई में उपयोग किए जाने वाले टूल पर निर्भर हो सकता है जो सूची को पुन: व्यवस्थित करने के लिए उपयोग करता है (उदाहरण के लिए, ड्रैग ड्रॉप के लिए)।

उम्मीद है कि यह मदद करता है। थिएरी

+0

जो वास्तव में उपयोगी लगता है। मुझे यकीन नहीं था कि क्या ऐसा कुछ नया मार्ग निर्धारित करना उचित है जो वास्तव में मॉडल या संग्रह नहीं है। धन्यवाद! – Loilo

+0

मैं आमतौर पर संग्रह में तत्व जोड़ने के लिए संसाधन/संग्रह/विधि के विधि POST का उपयोग करता हूं। शायद यह लिंक आपकी मदद कर सकता है: https://templth.wordpress.com/2014/12/15/designing-a-web-api/। –

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