asp.net web api是一个框架,可以轻松构建到达各种客户端(包括浏览器和移动设备)的http服务。asp.net web api是在.net framework上构建restful应用程序的理想平台。
当要web上构建api时,可以通过多种方式在web上构建api。 这些包括http/rpc,这意味着在远程过程调用中使用http来通过web调用诸如方法之类的东西。
这些动词本身包含在api中,例如:获取客户,插入发票,删除客户,并且每个这些端点最终都是一个单独的uri。
下面通过创建一个新的asp.net web应用程序来看看如何构造一个简单的web api示例。
第1步 - 打开visual studio,然后单击:文件 -> 新建 -> 项目 菜单选项。
一个新的项目对话框打开。如下图所示 -
第2步 - 在左侧窗格中,选择:模板 -> visual c# -> web 。
第3步 - 在中间窗格中,选择“asp.net web应用程序”,在名称字段中输入项目名称:webapidemo ,然后单击确定 以继续。将看到以下对话框,要求您为asp.net项目设置初始内容。如下图所示 -
第4步 - 为了简单起见,请选择: 空 选项,并在“为以下项添加文件夹和核心引用” 部分中选中web api 复选框,然后单击 确定 。
第5步 - 它将创建一个基本的mvc项目与最小的预定义的内容。
项目由visual studio创建后,在“解决方案资源管理器”窗口中看到许多文件和文件夹。
第6步 - 现在需要添加一个模型。右键单击解决方案资源管理器 中的models 文件夹,然后选择:添加 -> 类。将看到添加新项目对话框。
第7步 - 选择中间平台的类,并在名称字段中输入employee.cs。
第8步 - 使用下面的代码将一些属性添加到employee类。代码如下所示 -
using system; using system.collections.generic; using system.linq; using system.web; namespace webapidemo.models { public class employee { public int id { get; set; } public string name { get; set; } public datetime joiningdate { get; set; } public int age { get; set; } } }
第9步 - 添加控制器。右键单击解决方案资源管理器 中的controllers 文件夹,然后选择:添加 -> 控制器 。它将显示“添加基架”对话框 -
第10步 - 选择:web api 2控制器 - 空 选项。该模板将为控制器创建一个具有默认操作的index方法。
第11步 - 点击“添加”按钮,添加控制器对话框将出现。
第12步 - 将名称设置为:employeescontroller,然后单击“添加” 按钮。
在controllers文件夹中看到一个新的 c# 文件 -employeecontroller.cs,该文件夹在visual studio中打开,并进行一些默认操作。如下代码 -
using system; using system.collections.generic; using system.linq; using system.net; using system.net.http; using system.web.http; using webapidemo.models; namespace webapidemo.controllers { public class employeescontroller : apicontroller { employee[] employees = new employee[]{ new employee { id = 1, name = "maxsu", joiningdate = datetime.parse(datetime.today.tostring()), age = 30 }, new employee { id = 2, name = "allan", joiningdate = datetime.parse(datetime.today.tostring()), age = 35 }, new employee { id = 3, name = "avgwong", joiningdate = datetime.parse(datetime.today.tostring()), age = 21 } }; public ienumerable<employee> getallemployees() { return employees; } public ihttpactionresult getemployee(int id) { var employee = employees.firstordefault((p) => p.id == id); if (employee == null) { return notfound(); } return ok(employee); } } }
第13步 - 运行这个应用程序,并在浏览器中访问url:http://localhost:58150/api/employees/,然后按“enter”。将看到以下输出 -
第14步 - 再次访问url:http://localhost:58150/api/employees/1,将看到以下输出 -