简单的WEB API REST项目

时间:2014-10-25 13:30:13

标签: c# asp.net asp.net-web-api

使用ASP.NET MVC在Visual Studio 2013中创建简单REST API的最佳方法是什么。

我只想要一些控制器和路由配置以及HTTP REST API的任何其他基本要求。

我不需要任何Razor视图引擎,Javascript或HTML包含。

如何在没有所有不需要的额外内容的情况下创建项目,我通常会在过去删除它?

谢谢。

4 个答案:

答案 0 :(得分:32)

这一切都在您选择的模板中。

  1. 在“新建项目”对话框中,选择" .NET Framework 4.5"如果尚未选择
  2. 导航至已安装>模板> Visual C#> Web,然后" ASP.NET Web应用程序"然后选择确定。
  3. 在选择项目类型的对话框中,选择"清空",然后务必检查" Web API"在"添加文件夹和核心参考。
  4. 现在你已经创造了最低限度。

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

答案 1 :(得分:2)

根据您想要的ASP.NET部分,您可以在https://github.com/thecodejunkie/Nancy查看Nancy。它可以在ASP.NET中托管,并且非常轻巧,并提供了一个简单的路由选项,可以插入不同的视图技术(Razor,Spark,SimpleView等)。

答案 2 :(得分:2)

如果您愿意,可以删除MVC组件,只使用Web API 2。添加您自己的自定义配置位:

        //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();

这样您就可以在创建为控制器的任何文件中创建任何您想要的路径。

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
    }
}

您不需要MVC。我将WebAPI2与Linq2SQL一起使用(当我想简单时,实体更像是PITA) - 但这部分也不需要。 L2SQL实体更快/更容易站起来并使用他们的建模类 - 但任何类或任何你想要的东西,发送它。

如果我想在javascript端使用MVVM,我通常会使用Knockout。使用KO.Mapping - 我可以使用一行代码接收CustomOBject并使用JS对象并立即绑定到页面上的元素。所有这一切中最棘手的部分是学习Knockout。使用WebAPI2编写自定义属性非常简单有趣。

简而言之,具有自定义属性路由的WebAPI2就是您以任何您想要的方式站立REST客户端所需的全部内容。根据需要,使用任何方法/返回/类型以任何方式打破“控制器”。您可以根据需要使其变得简单,或者开始抛弃诸如Knockout和L2SQL(或EF)之类的东西来更紧密地绑定事物。

答案 3 :(得分:-2)

我认为你的项目最好的方法是使用Web Api,即使是简单的HTML页面,但是...... jQuery甚至像Knockout.JS或Angular这样的东西,这对于任何现代项目来说都是必须的。