在这篇文章中,我们将介绍ASP.NETCore,以及如何使用此框架创建RESTfulWeb服务并部署该服务。
在本文中,我将逐步解释如何在ASP.NETCore中开发RESTfulWeb服务应用程序。ASP.NETCore是微软发布的最新技术,远远优于它的前辈,分别是WCF和WebAPI。
该项目的先决条件:
下载最新版本的MicrosoftVisualStudio。他们有免费的执照版本。要测试此应用程序,请从此处下载SOAPUI工具,因为我们将使用SOAPUI工具来测试所有服务。
让我们一步一步地开始我们的项目:
步骤1:首先,在VisualStudio中创建一个ASP.NETCoreWebApplication项目,并将其命名为StudentRegistrationDemo3。为此,选择File-New-Project-ASP.NETCoreWebApplication(参见下面的窗口),然后单击OK。
单击“确定”按钮后,您将看到以下窗口,您需要在其中选择“Web应用程序”,然后取消选中“为HTTPS配置”复选框(否则,它将创建基于SSL的项目,您必须在测试期间在所有URL中使用HTTPS的HTTP实例,然后单击“确定”按钮。
单击“确定”按钮后,将创建以下项目结构:
第2步:现在您需要在项目中添加两个文件夹:一个用于模型,另一个用于控制器。Models文件夹用于资源类,Controllers文件夹用于Controller类;这是该项目所必需的。只需右键单击您的项目,添加=新建文件夹并相应地重命名。
最后,您的项目结构应如下所示:
第3步:现在,我们将创建以下资源类来处理我们的GET,POST,PUT和DELETE服务。右键单击项目资源管理器窗口中的Models文件夹,然后选择Add=Class(见下文):
第4步:现在是时候引入控制器类来处理我们的GET,POST,PUT和DELETEWeb请求了。我们将在此示例中为GET,POST,PUT和DELETE请求创建单独的控制器,即使它没有必要,但我使用单独的控制器以获得更清晰。即使一个控制器也足以满足上述所有服务,但是,根据良好的设计原则,我们应该有一个单独的控制器,以便于维护和调试应用程序。
让我们先从GET和POST请求开始。单击Controllers文件夹并选择Add=NewItem,然后选择APIControllerClass并创建一个名为的控制器类StudentRetriveController,如下所示,用于处理GET请求。
步骤5:在VisualStudio菜单栏中,您可以看到绿色箭头按钮。在这里,您可以选择系统中安装的浏览器并单击它。它将启动您的Web服务器并运行您的Web服务应用程序。
现在等待,直到您的浏览器窗口正确加载,如下所示:
现在服务器正在运行,我们将首先进行GET服务调用。
步骤6.我希望您已经将SOAPUI安装到您的系统中;如果没有,请从此处下载SOAPUI。现在打开应用程序,从File菜单中选择NewRESTProject(File=NewRESTProject)并复制并粘贴以下URL并单击OK按钮。请更改端口号,因为它可能与您的情况有所不同。
HTTP://localhost:/API/studentretrive
(注意我们使用的URL有控制器名称,studentretrive(StudentRetriveController),作为资源定位器)
创建项目后,只需单击绿色箭头按钮,您就可以看到如下所示的空记录文件夹:
原因很明显,因为我们的学生名单是空的。所以我们必须在这里插入一些记录。要添加记录,我们将使用我们的POST服务。我们现在测试我们的POST服务。
步骤7.只需按照步骤6创建一个新的REST项目并添加以下URL。
HTTP://localhost:/API/studentregistration
但是,在这里,我们需要做一些额外的配置。首先,从方法列表中选择POST,然后在“介质类型”中添加记录以将其插入到应用程序中。现在,单击绿色箭头按钮,您可以看到下面的窗口。
现在,看看StudentRegistrationController课程。在这里,我介绍了四种不同类型的POST服务。引入四种不同类型的POST方法的原因是为您提供使用泛型类型作为返回类型的示例。在第一个POST服务的方法,
RegisterStudent,返回类型是用户定义类型,StudentRegistrationReply。假设在插入过程中我们得到一个例外;我们如何通知调用者异常类型?因为返回类型是StudentRegistrationReply,我们必须返回一个类型的对象StudentRegistrationReply。因此,我们需要一个普遍的返回类型,以便我们可以返回任何对象类型。但是,我们有解决方案来处理这种情况。现在看看其他方法;返回类型是通用的,我们使用JSON,因此我们可以调整任何类型的对象。
现在使用URL