前言 |
本文章是关于WebAPI的一些基础使用,和大家一起分享
一、 创建WebAPI项目 |
1. 新建项目
文件->新建->项目
选择模板中的Web API
2. 新建Model类
右击Model->添加->类
测试时可以添加如下代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace test.Models
{
public class Test
{
public int ID { get; set; }
public int Age { get; set; }
public string Name { get; set; }
public string Sex { get; set; }
public long _timestamp { get; set; }
public string _sign { get; set; }
public string _message { get; set; }
}
}
3. 新建Controllers类
右击Controllers->添加->控制器
测试时可以添加如下代码
using System;
using System.Collections.Generic;//添加此引用之后IEnumerable可用
using System.Linq;
using System.Web;
using System.Web.Http;//添加此引用之后ApiController可用
using test.Models;//添加此引用之后Test可用
using System.Net;
//using System.Net.Http;
//using System.Web.Mvc;//去掉此引用之后Route HttpGet可用
namespace test.Controllers
{
[RoutePrefix("api/users")]
public class TestController : ApiController
{
List<Test> tests = new List<Test>
{
new Test() { ID=1,Age=23,Name="张三",Sex="男"},
new Test() { ID=2,Age=55,Name="李四",Sex="男"},
new Test() { ID=3,Age=12,Name="王五",Sex="男"},
new Test() { ID=4,Age=18,Name="赵六",Sex="女"},
};
/// <summary>
/// 公开的接口--查询出所有的数据
/// </summary>
/// <returns></returns>
[Route("getAll")]
[HttpGet]
public IEnumerable<Test> addUser1(Test test)
{
tests.Add(test);
return tests;
}
[HttpGet]
[Route("QueryUsersById")]
/// <summary>
/// 通过id来查询数据
/// </summary>
/// <returns></returns>
public Test QueryUsersById(int id)
{
var user = tests.FirstOrDefault((u) => u.ID == id);
if (user == null)
{
return null;
}
else
{
return user;
}
}
}
}
二、 WebAPI测试 |
功能:类似于swagger和postman这样的前后端链接测试工具,支持前后端分离
1. 安装WebApiTestClient
目的:新建的webapi是没有testapi按钮的,需要安装WebApiTestClient
工具->Nuget包管理器->管理解决方案的NuGet程序包
2、找到浏览->输入WebApiTestClient->选择下图中的WebApiTestClient->点击webapi->点击安装(选中WebApi的项目)
3、在WebApi下的Areas/HelpPage/Views/Help/Api.cshtml的最后添加以下代码:
@Html.DisplayForModel("TestClientDialogs")
@section Scripts{
<link href="~/Areas/HelpPage/HelpPage.css" rel="stylesheet" />
@Html.DisplayForModel("TestClientReferences")
}
Api.cshtml展示如下:
@using System.Web.Http
@using test.Areas.HelpPage.Models
@model HelpPageApiModel
@{
var description = Model.ApiDescription;
ViewBag.Title = description.HttpMethod.Method + " " + description.RelativePath;
}
<link type="text/css" href="~/Areas/HelpPage/HelpPage.css" rel="stylesheet" />
<div id="body" class="help-page">
<section class="featured">
<div class="content-wrapper">
<p>
@Html.ActionLink("Help Page Home", "Index")
</p>
</div>
</section>
<section class="content-wrapper main-content clear-fix">
@Html.DisplayForModel()
</section>
</div>
@Html.DisplayForModel("TestClientDialogs")
@section Scripts{
<link href="~/Areas/HelpPage/HelpPage.css" rel="stylesheet" />
@Html.DisplayForModel("TestClientReferences")
}
4、测试步骤
(1) 在网页的API处可以看到Test
(2)点击其中的某一个出现Test API的按钮
(3)点击Test API按钮出现下面的页面
三、 站在巨人的肩膀上 |
参考:
《Asp.Net Web API》—–webApi的简单使用
C#进阶系列——WebApi 接口测试工具:WebApiTestClient
WebAPI英文官网
WebAPI中文官网