Une application Rails avec une interface RESTful doit accepter les données POST à l'aide d'un type MIME personnalisé basé sur 'application/json'. Appelons ce type MIME 'application/vnd.com.example.Foo + json'.Analyse de la charge utile JSON dans les rails lors de l'utilisation du type MIME personnalisé
L'enregistrement du type MIME personnalisé dans Rails à l'aide de Mime :: Type.register fonctionne correctement car l'application reconnaît le type MIME donné dans l'en-tête "Accept:" et affiche une vue JSON via respond_to.
Le problème concerne les méthodes de contrôleur telles que la mise à jour et la création qui doivent convertir des données au format JSON personnalisées en un hachage param. Si je mets l'en-tête "Content Type:" à application/json, les données sont analysées dans le hash params. Mais si je définis l'en-tête "Content Type:" sur "applcation/vnd.com.example.Foo + json", la charge utile ne sera pas analysée. Il semble donc que MIME :: Type.register est utilisé pour piloter le bloc respond_to, mais pas pour décider comment analyser les charges utiles pour les méthodes create et update.
Des idées?
On dirait que ce serait peut-être un peu différent dans Rails 5: 'ActionDispatch :: Request.parameter_parsers [Mime: : Type.lookup ('application/vnd.com.example.foo + json')] = lambda {| raw_post | ActiveSupport :: JSON.decode (raw_post)} ' –