2013-11-22 12 views

Trả lời

16

Trong config.yml của bạn, hãy chắc chắn bạn có điều này cấu hình:

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

Hy vọng rằng sẽ giúp

EDIT:

Có một ví dụ trong FOSRestBundle Docs cho thấy làm thế nào để sử dụng ClassResourceInterface. Sự khác biệt lớn nhất là bạn không phải tự xác định các tuyến đường của mình. Giao diện sẽ tạo ra các tuyến đường của bạn dựa trên tên lớp của bạn và tên phương thức. Vì vậy, nó là rất quan trọng những gì bạn đặt tên cho phương pháp của bạn (bạn có thể ghi đè lên như thế nào tên lớp được sử dụng, điều này được thể hiện trong các tài liệu)

ví dụ, một cái gì đó như thế này:

use FOS\RestBundle\Routing\ClassResourceInterface { 

class UserController implements ClassResourceInterface { 

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

sẽ tạo ra một con đường trông như thế này: [GET] /users. Đây là cách tôi sử dụng các gói, và nó hoạt động tuyệt vời. Tôi cũng không phải sử dụng tùy chọn {_format} ở bất kỳ đâu vì tôi không phải xác định các tuyến đường theo cách thủ công ở bất kỳ đâu.

lưu ý - xem câu trả lời gốc của tôi, tôi đã thực hiện chỉnh sửa cũng có thể trợ giúp về cách bạn đang sử dụng gói. Tôi đã không thử sử dụng các gói theo cách của bạn, vì vậy tôi không chắc chắn nếu điều này sẽ làm việc hay không, nhưng docs làm cho nó có vẻ như nó sẽ làm việc.

+0

Không, tính năng này không hoạt động. Tôi đã có thể đạt được nó bằng cách loại bỏ 'type: rest' từ' routing.yml' và sử dụng các chú thích như '@Rest \ Get ("/user ")' trong một bộ điều khiển. –

+0

Tôi đoán nó phải phụ thuộc vào cách bạn đang sử dụng gói. Tôi đang sử dụng ClassResourceInterface và điều này hoạt động tốt. – Sehael

+0

Bạn có thể trình bày một ví dụ về cách bạn sử dụng nó không? –

Các vấn đề liên quan