Quelqu'un peut-il expliquer CreatedAtRoute() pour moi?
À partir du modèle de l'API Web 2, une méthode post est toujours comme ça:
[ResponseType(typeof(MyDTO))]
public IHttpActionResult PostmyObject(MyDTO myObject)
{
...
return CreatedAtRoute("DefaultApi", new { id = myObject.Id }, myObject);
}
Je ne comprends pas ce CreatedAtRoute()
méthode. Quelqu'un peut-il expliquer la CreatedAtRoute()
méthode à moi?
- bien sûr, je trouve ces résultats Google. Mon problème est que ces documents ne m'aident pas à comprendre cette méthode, après les avoir lu, je ne comprends toujours pas. C'est pourquoi je demande ici.
- Je n'ai pas à vous répondre à ma question alors.
- Si je peux Google et trouver la réponse, pourquoi ai-je pris la peine de passer du temps à modifier une question et demandez ici?
- merci de poser cette question 🙂
- moi aussi! merci!
Vous devez vous connecter pour publier un commentaire.
La
CreatedAtRoute
méthode est prévue pour retourner un URI de la ressource nouvellement créée lorsque vous appelez une méthode POST pour stocker un nouvel objet.Donc, si vous publiez un article, par exemple, vous pourriez retourner une route comme 'api/commande/11' (11 étant l'id de la commande évidemment).
BTW je suis d'accord que l'article MSDN est d'aucune utilité dans la compréhension de ce. L'itinéraire vous fait retour va naturellement dépendre de votre configuration du routing.
[Route("[controller]")]
sur le contrôleur, que dois-je retourner (de sorte que le adjacents OBTENIR une action peut être invoquée par l'URL, par exemple)?Lorsque vous utilisez CreatedAtRoute, le premier argument est le nom de la méthode de l'Obtenir à la ressource. Le truc qui n'est pas si évident, c'est que, même avec la bonne méthode, nom spécifié, vous devez utiliser le Nom de param sur le HttpGet attribut pour que cela fonctionne.
Donc, si le retour dans votre Post, c'est ceci:
Alors votre méthode Get attribut devrait ressembler à ceci même si votre méthode est appelée Get:
Ce ne sera pas seulement de retour le nouvel objet (normalement JSON), il va définir l'Emplacement de l'en-tête de la réponse à l'URI qui permettrait d'obtenir cette ressource.