मैं वर्तमान में PHP में एक RESTful API को डिज़ाइन और कार्यान्वित कर रहा हूँ। हालांकि, मैं अपने शुरुआती डिजाइन को लागू करने में असफल रहा हूं।
GET /users # list of users
GET /user/1 # get user with id 1
POST /user # create new user
PUT /user/1 # modify user with id 1
DELETE /user/1 # delete user with id 1
अभी तक बहुत मानक, सही?
मेरी समस्या पहले वाले के साथ है GET /users
। मैं सूची को फ़िल्टर करने के लिए अनुरोध निकाय में पैरामीटर भेजने पर विचार कर रहा था। ऐसा इसलिए है क्योंकि मैं एक सुपर लंबी यूआरएल प्राप्त किए बिना जटिल फिल्टर निर्दिष्ट करने में सक्षम होना चाहता हूं, जैसे:
GET /users?parameter1=value1¶meter2=value2¶meter3=value3¶meter4=value4
इसके बजाय मैं कुछ ऐसा करना चाहता था:
GET /users
# Request body:
{
"parameter1": "value1",
"parameter2": "value2",
"parameter3": "value3",
"parameter4": "value4"
}
जो बहुत अधिक पठनीय है और आपको जटिल फिल्टर सेट करने की बहुत संभावनाएं देता है।
फिर भी, अनुरोधों के file_get_contents('php://input')
लिए अनुरोध निकाय को वापस नहीं किया GET
। मैंने भी कोशिश की http_get_request_body()
, लेकिन साझा होस्टिंग जो मैं उपयोग कर रहा हूं वह नहीं है pecl_http
। यकीन नहीं है कि यह वैसे भी मदद की होगी।
मुझे यह सवाल लगा और पता चला कि GET शायद एक अनुरोध निकाय नहीं है। यह थोड़ा अनिर्णायक था, लेकिन उन्होंने इसके खिलाफ सलाह दी।
इसलिए अब मुझे यकीन नहीं है कि मुझे क्या करना है। आप एक RESTful खोज / फ़िल्टरिंग फ़ंक्शन कैसे डिज़ाइन करते हैं?
मुझे लगता है कि मैं उपयोग कर सकता था POST
, लेकिन यह बहुत Restful नहीं लगता है।