Utilisation des services REST avec Catalyst.Perl Catalyst Catalyst :: Controller :: REST avec HTML
Je peux obtenir une réponse renvoyée avec JSON, cependant, comment puis-je le faire si je voulais qu'un modèle HTML soit rendu. J'ai:
package MM::Controller::User::Test;
use Moose;
use namespace::autoclean;
BEGIN { extends 'Catalyst::Controller::REST' }
sub thing : Local : ActionClass('REST') { }
sub thing_GET {
my ($self, $c) = @_;
# Return a 200 OK, with the data in entity
# serialized in the body
$c->{stash}->{template} = "a.tt";
$self->status_ok(
$c,
entity => {
some => 'data',
foo => 'is real bar-y',
},
);
}
1;
Et mon jQuery:
$(document).ready(function() {
$.ajax({
type : "GET",
url : "/user/test/thing",
data : {},
dataType: "html",
success : function(data, textStatus) {
console.log(data);
}
});
});
Il fonctionne si dataType est "JSON" parfaitement (Object {foo: "est vrai bar-y", certaines "données"}) , cependant, comment puis-je obtenir Catalyst pour retourner du HTML afin que jQuery puisse le placer. J'obtiens un message "415 (Unsupported Media Type)". Est-ce que je n'utilise pas le REST correctement?
Ahh oui, puis utilisez simplement la méthode décrite ci-dessus pour les appels JSON? Je viens de remarquer dans les documents qu'il mentionnait les types de contenu HTML, ce qui explique pourquoi je suivais ce chemin. Merci – user3308357
Sauf si vous faites des actions REST appropriées, je ne serais pas enclin à ajouter 'Catalyst :: Controller :: REST' au mélange. C'est assez trivial pour retourner JSON sans lui: '$ c-> body (encode_json ($ c-> stash -> {foo}))' – RET