使用ASP.NET MVC在Visual Studio 2013中创建简单REST API的最佳方法是什么。
我只想要一些控制器和路由配置以及HTTP REST API的任何其他基本要求。
我不需要任何Razor视图引擎,Javascript或HTML包含。
如何在没有所有不需要的额外内容的情况下创建项目,我通常会在过去删除它?
谢谢。
答案 0 :(得分:32)
这一切都在您选择的模板中。
现在你已经创造了最低限度。
请参阅: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这样的东西,这对于任何现代项目来说都是必须的。