2013-11-22 5 views

उत्तर

16

अपने config.yml में, सुनिश्चित करें कि आप इस कॉन्फ़िगर करें:

fos_rest: 
    format_listener: true 
    routing_loader: 
     default_format: json 
     include_format: false 

आशा है कि मदद करता है

संपादित करें:

वहाँ FOSRestBundle Docs पता चलता है कि कैसे उपयोग करने के लिए एक उदाहरण है ClassResourceInterface। सबसे बड़ा अंतर यह है कि आपको अपने मार्गों को मैन्युअल रूप से परिभाषित करने की आवश्यकता नहीं है। इंटरफ़ेस आपके मार्गों को क्लास नाम और विधि नाम के आधार पर उत्पन्न करेगा। इसलिए यह बहुत महत्वपूर्ण है कि आप अपने तरीकों का नाम है (आप ओवरराइड कर सकते हैं कि कैसे वर्ग के नाम प्रयोग किया जाता है, इस डॉक्स में दिखाया गया है)

इस तरह उदाहरण के लिए

, कुछ:

use FOS\RestBundle\Routing\ClassResourceInterface { 

class UserController implements ClassResourceInterface { 

    public function cgetAction() { 
     //return a list of all users 
    } 
} 

रूट तैयार हैं ऐसा लगता है: [GET] /users। इस तरह मैं बंडल का उपयोग करता हूं, और यह बहुत अच्छा काम करता है। मुझे कहीं भी {_format} विकल्प का उपयोग करने की आवश्यकता नहीं है क्योंकि मुझे मार्गों को मैन्युअल रूप से कहीं भी परिभाषित करने की आवश्यकता नहीं है।

नोट - मेरा मूल उत्तर भी देखें, मैंने एक संपादन किया है जो आप बंडल का उपयोग करने में मदद कर सकते हैं। मैंने जिस तरह से बंडल का उपयोग करने की कोशिश नहीं की है, इसलिए मुझे यकीन नहीं है कि यह काम करेगा या नहीं, लेकिन docs ऐसा लगता है कि यह काम करेगा।

+0

नहीं, यह काम नहीं करता है। मैं 'routing.yml' से' type: rest' को हटाकर और नियंत्रक में '@Rest \ Get ("/user ") जैसे एनोटेशन का उपयोग करके इसे प्राप्त करने में सक्षम था। –

+0

मुझे लगता है कि यह इस बात पर निर्भर होना चाहिए कि आप बंडल का उपयोग कैसे कर रहे हैं। मैं ClassResourceInterface का उपयोग कर रहा हूं और यह ठीक काम करता है। – Sehael

+0

क्या आप इसका उपयोग कैसे कर सकते हैं इस पर एक उदाहरण दिखा सकते हैं? –

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