web-dev-qa-db-fra.com

API WEB simple REST

Quelle est la meilleure façon de créer une API REST simple dans Visual Studio 2013 à l'aide d'ASP.NET MVC).

Je veux juste quelque chose avec des contrôleurs et une configuration de route avec toutes les autres exigences de base pour une API HTTP REST.

Je n'ai pas besoin de moteur de vue Razor, d'inclusions Javascript ou HTML.

Comment puis-je créer un projet sans tous les extras indésirables que je supprime habituellement dans le passé?

Merci.

21
jim

Tout est dans le modèle que vous sélectionnez.

  1. Dans la boîte de dialogue Nouveau projet, sélectionnez ".NET Framework 4.5" s'il n'est pas déjà sélectionné
  2. Naviguez vers Installé> Modèles> Visual C #> Web, puis "Application Web ASP.NET" et sélectionnez OK.
  3. Dans la boîte de dialogue pour sélectionner le type de projet, sélectionnez "Vide", mais assurez-vous de vérifier "API Web" sous "Ajouter des dossiers et des références de base.

Vous allez maintenant avoir créé le strict minimum.

Voir: http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

32
Jason W

Selon les parties d'ASP.NET que vous souhaitez, vous pouvez consulter Nancy sur https://github.com/thecodejunkie/Nancy . Il peut être hébergé dans ASP.NET et est assez léger et fournit un routage simple avec des options pour brancher différentes technologies d'affichage (Razor, Spark, SimpleView et plus).

2
user783836

Vous pouvez supprimer le composant MVC si vous le souhaitez, et simplement utiliser des éléments de l'API Web 2. Ajoutez votre propre bit de configuration personnalisé:

        //attribute routing - lets me put any route any method in any darn file.
        //this sets you free.  I could never see doing it any other way.
        config.MapHttpAttributeRoutes();

Pour que vous puissiez créer n'importe quel itinéraire à la volée, dans n'importe quel fichier que vous créez en tant que contrôleur.

public class MyWeirdController : ApiController {
    //via REST, get object //method-route defined here as I want it
    [HttpGet] [Route("~/my/custom/route/someobject/{objectid}")]    
    public CustomObject GonnaGetCustomObject(int objectid) {

       .... use whatever 
      var obj = new CustomObject();
      obj.SetSomething = true;

     return obj
    }
}

Vous n'avez pas besoin de MVC. J'utilise WebAPI2 avec Linq2SQL (Entities est plus un PITA quand je veux simple) - mais cette partie n'est pas nécessaire non plus. Les entités L2SQL sont juste plus rapides/plus faciles à tenir debout et à s'exécuter avec leurs classes de modélisation - mais n'importe quelle classe ou ce que vous voulez, envoyez-le.

J'utilise généralement Knockout si je veux le MVVM du côté javascript. Avec KO.Mapping - je peux, avec une seule ligne de code - recevoir ce CustomOBject et avoir un objet JS avec lequel travailler et me lier instantanément aux éléments de la page. La partie la plus difficile de tout cela est d'apprendre Knockout. L'écriture d'attributs personnalisés avec WebAPI2 est complètement simple et amusante.

En bref, WebAPI2 avec un routage d'attributs personnalisé est tout ce dont vous avez besoin pour tenir un client REST comme vous le souhaitez. Répartissez vos "contrôleurs" comme vous le souhaitez avec toutes les méthodes/retours/types Vous pouvez le rendre aussi simple que vous le souhaitez, ou commencer à ajouter des éléments comme Knockout et L2SQL (ou EF) pour lier encore plus les choses.

2
Jason