Как я могу отправить JSON вместо данных формы на мой контроллер Symfony - PullRequest
1 голос
/ 27 января 2011

В Интернете есть множество учебников о том, как установить действие-ответ для типа json в контроллере Symfony. Но как я могу получить JSON?

$ request-> getRequestFormat () возвращает "json", но данные json, похоже, потеряны, потому что $ request-> getParameter () не работает.

Это мой маршрут:

importservice:
  url: /importservice
  class: sfRequestRoute
  param: { module: remoteaccess, action: import, sf_format: json }
  requirements:
    sf_method: post
    sf_format: json

Edit:

getParameter () декодирует multipart / form-data (html-forms) и get-параметры, поэтому я подумал, что это также делается для приложения типа контента / json. Мне это нужно для веб-сервиса, который публикует данные. Моя основная идея заключалась в том, что не имеет значения, заполняет ли человек html-формы или бот отправляет данные напрямую. Я думал, что кодирование контента в json проще в реализации, чем кодирование в multipart / form-data.

1 Ответ

1 голос
/ 29 января 2011

Я пришел к такому выводу:

Метод Symfony getParameter () предоставляет GET-параметры (url) и параметры, которые определены в маршрутизации (uri). Элементы многокомпонентных данных также будут предоставлены, потому что этот медиа-тип является просто контейнером для пакетов суб-контента, тогда как application / json уже сам контент. Другими словами: multipart просто заявляет, что существует более одного контент-пакета.

Можно утверждать, что json также является контейнером данных, но я думаю, что multipart содержит данные на «уровне http», тогда как json содержит данные на «уровне содержимого».

Путаница возникает из-за того, что multipart на самом деле является чем-то вроде мета-медиа-типа.

...