WebAPI 实现 Restful 接口,并支持跨域调用

什么是 Restful 接口

在互联网应用中,Restful 接口是一种常用的 API 设计风格。它基于 HTTP 协议,使用 GET、POST、PUT、DELETE 等 HTTP 方法,通过 URI 定位资源,使用 JSON 或 XML 格式传输数据,实现客户端和服务器之间的通信。

Restful 接口的设计原则包括:

  • 资源定位:每个资源都有一个唯一的 URI,通过 URI 定位资源。
  • 使用 HTTP 方法:使用 HTTP 方法对资源进行操作,GET 获取资源、POST 新建资源、PUT 更新资源、DELETE 删除资源。
  • 无状态:每个请求都是独立的,服务器不会保存客户端的状态信息。
  • 数据格式:使用 JSON 或 XML 格式传输数据。

WebAPI 实现 Restful 接口

WebAPI 是 Microsoft 推出的一种基于 ASP.NET 框架的 Web 服务开发技术,可以方便地创建 Restful 接口。下面以一个简单的示例来说明如何使用 WebAPI 实现 Restful 接口。

创建 WebAPI 项目

首先,打开 Visual Studio 创建一个新的 ASP.NET Web 应用程序,选择 WebAPI 模板。

创建数据模型

接下来,创建一个数据模型,用于存储资源。在 Models 文件夹下创建一个名为 Student.cs 的类,代码如下:

创建控制器

然后,创建一个控制器,用于处理 Restful 接口的请求。在 Controllers 文件夹下创建一个名为 StudentsController.cs 的类,代码如下:

配置路由

最后,配置路由,使得客户端能够通过 URI 访问资源。在 App_Start 文件夹下创建一个名为 WebApiConfig.cs 的类,代码如下:

在 Register 方法中,首先调用 MapHttpAttributeRoutes 方法,以支持使用属性路由。然后,调用 MapHttpRoute 方法,配置默认的路由模板。最后,调用 EnableCors 方法,启用跨域资源共享。

测试 Restful 接口

现在,我们可以通过浏览器或者其他工具测试 Restful 接口了。例如,使用浏览器访问 http://localhost:port/api/students 可以获取所有学生信息;使用 POSTMAN 工具发送 POST 请求,可以添加一个新的学生信息。

支持跨域调用

在实际应用中,我们经常需要在不同的域之间调用 Restful 接口,这就需要支持跨域资源共享(CORS)。WebAPI 提供了一种简单的方法来实现 CORS。

首先,在 WebApiConfig.cs 文件中调用 EnableCors 方法,启用 CORS:

然后,在控制器类或者方法上添加 [EnableCors] 属性,指定允许跨域访问的域名:

其中,origins 参数指定允许跨域访问的域名,headers 参数指定允许跨域访问的 HTTP 头信息,methods 参数指定允许跨域访问的 HTTP 方法。

总结

通过上面的示例,我们可以看到,使用 WebAPI 实现 Restful 接口非常简单。同时,通过支持 CORS,我们还可以方便地实现跨域调用。在实际应用中,我们可以根据具体需求,灵活地设计 Restful 接口,以提高 Web 应用的性能和可维护性。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/657c06e3d2f5e1655d6c4476


纠错
反馈