我是Asp.Net的新手,并尝试在学习过程中开发一个小型Web API。
WebApiConfig.cs
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/v1/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
TopicsController.cs
namespace MessageBoard.Controllers
{
public class TopicsController : ApiController
{
private IMessageBoardRepository _repo;
public TopicsController(IMessageBoardRepository repo)
{
_repo = repo;
}
public IEnumerable<Topic> Get()
{
var topics = _repo.GetTopics()
.OrderByDescending(t => t.Created)
.Take(25)
.ToList();
return topics;
}
}
}
其实我正在观看PluralSight教程。
http://localhost:50031/api/v1/topics
此Url无法在浏览器中使用,不在Fiddler 4中。
添加所有引用。我也完成了构建解决方案,但它没有工作,并且代码中没有显示错误。
答案 0 :(得分:2)
通过向Application_Start()
方法添加以下代码行,启用看起来像您缺少的Web Api的最后一步是在Global.asax文件中启用Web API:
WebApiConfig.Register(GlobalConfiguration.Configuration);
另外,请不要使用PluralSight教程中的端口号。您需要从Visual Studio实例运行Web应用程序项目,当它在浏览器中打开时,您将看到分配给哪个端口您的 api服务。如果您看到它分配了端口12345,您可以调用以下URL来访问服务操作:
http://localhost:12345/api/v1/topics
答案 1 :(得分:1)
将属性路由添加到控制器
[Route("api/v1/topics")]
public IEnumerable<Topic> Get()
{
var topics = _repo.GetTopics()
.OrderByDescending(t => t.Created)
.Take(25)
.ToList();
return topics;
}