如何调试Web Api类库

时间:2017-02-28 10:38:30

标签: c# asp.net asp.net-web-api asp.net-web-api2 class-library

我有一个Asp.Net WebApi项目。我创建了一个类库,并在其中添加了控制器和模型。

项目结构在另一个StackOverflow question中解释。

问题:

现在我需要调试类库中的控制器。 最简单的方法是什么?

更新 我的问题是关于在Visual Studio 2015中调试类库。 因为它是一个需要附加到运行WabApi项目的过程的类库。

因此,当我单击VS中的调试按钮时,需要启动WEBAPI进程并自动附加到类库调试会话。

在visual studio项目属性中,有一个调试选项可用于设置“启动外部程序”。如何在此处关联WebApi项目? 或者有其他选择吗?

2 个答案:

答案 0 :(得分:0)

我认为最简单的方法是创建一个控制台应用程序来托管您的web api,然后您可以使用fiddler / postman之类的工具向您的api发送请求。

enter image description here

答案 1 :(得分:0)

首先,您的WEB API项目应该包含您的控制器,而不是您的类库。

您已经显示的堆栈溢出是一种非常糟糕的做法,因为您的WEB API充当应用程序的入口点(PRESENTATION LAYER)。

你的确可以创建一个图书馆'模型'对于您的域模型,但也应该创建一个用于访问数据库的库,称为数据访问层(DAL)。

如果要为其添加一些业务逻辑,则需要第4个库,称为业务层(BL)。

所以流程应该是这样的:

客户< - >表示层< - >业务层< - >数据访问层< - >数据库中。

PL,BL和DAL可以引用模型库。这整层事物被称为N层架构。

您还应该查看表示层的MVC模式。

现在确定架构已经完成,实际调试/测试控制器非常简单。

第一个选项可能是使用POSTMAN向控制器端点发送数据,只需向控制器添加断点并逐步调试。

第二个选项是使用Swagger,它将为您提供控制器端点的用户友好界面,以及实际向其发送内容的功能。它还将为您提供有关如何构建消息的模板JSON。

关于N Tier和MVC的更多信息

N Tier:https://en.wikipedia.org/wiki/Multitier_architecture

MVC:https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

Swagger教程:https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger

问候!