简单的WEB API REST项目

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

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

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

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

谢谢。

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

  1. 在“新建项目”对话框中,如果尚未选择“.NET Framework 4.5”,请选择它
  2. 导航到已安装>模板> Visual C#> Web,然后“ASP.NET Web应用程序”并选择确定。
  3. 在选择项目类型的对话框中,选择“清空”,但请务必选中“添加文件夹和核心参考”下的“Web API”。

现在你将创​​建最低限度。

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

如果愿意,您可以删除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(); 

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

 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)之类的东西来更紧密地绑定事物。

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

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