用ASP.NET Web API技术开发HTTP接口(一)

2024-06-19 03:18

本文主要是介绍用ASP.NET Web API技术开发HTTP接口(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开发工具

Visual Studio 2013

SQL Server 2008 R2

准备工作

启动Visual Studio 2013,新建一个ASP.NET Web应用程序,命名为SimpleAPI。选择Empty模板,并勾选“Web API”,无身份验证,不添加单元测试。

准备用SQL Server数据库来存储数据,因此要安装下Entity Framework框架,免去写繁琐SQL语句的麻烦。打开工具-》程序包管理器控制台输入以下命令安装。

Install-Package EntityFramework

在Web.config文件里配置数据库连接代码,打开这个文件,在configuration节点内添加连接字符串,其中星号部分换成SQLServer的数据库名称。

<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=Localhost;Initial Catalog=******;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
建立数据模型

在Models目录下新建一个名为Friend.cs的类文件。

public class Friend 
{public int ID { get; set; }public string FirstName { get; set; }public string LastName { get; set; }public string Address { get; set; }public string City { get; set; }public string PostalCode { get; set; }public string Country { get; set; }public string Notes { get; set; }  
}

同时建立数据库的Context类文件。

public class FriendContext : DbContext
{public FriendContext(): base("name=DefaultConnection"){}public DbSet<Friend> Friends { get; set; }protected override void OnModelCreating(DbModelBuilder modelBuilder){modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();}
}

说明:

1、name=DefaultConnection要和Web.config中的数据库连接字符串中的name一致。

2、OnModelCreating重载函数的作用是让创建的数据表名称为单数格式,即为Friend,而不是Friends。

然后在程序包管理控制台启用Migrations,生成Migrations目录,以及目录中的Configuration.cs配置文件。

Enable-Migrations

再依次执行下面2条命令,就可以把刚才建立的数据模型导入到SQLServer中了,很方便。

Add-Migration xxx
Update-Database

其中xxx可任意填写,VS会生成一个名为201508051223177_xxx.cs文件,201508051223177是当前时间,文件包含Up和Down两个方法。现在我们再到SQLServer中刷新下查看,会发现一个名为Friend的数据表就建立好了。

下面利用Configuration.cs中的Seed函数添加一些测试数据,在Seed方法下添加以下模拟数据。

var friend = new Friend
{FirstName = "三",LastName = "张",Address = "南京西路",City = "上海",Country = "中国",PostalCode = "200041",Notes = "www.zhaomu.com"
};
context.Friends.Add(friend);
friend = new Friend
{FirstName = "四",LastName = "李",Address = "三里屯",City = "北京",Country = "中国",PostalCode = "100600",Notes = "www.sohu.com"
};
context.Friends.Add(friend);
friend = new Friend
{FirstName = "五",LastName = "王",Address = "花城大道",City = "广州",Country = "中国",PostalCode = "510623",Notes = "www.163.com"
};
context.Friends.Add(friend);

然后执行Update-Database命令后,这些数据就成功导入到SQL Server的数据表里面了。

创建控制器

在Controllers目录下添加控制器,选择“Web API 2 控制器 - 空”,我们将手工编写API程序的读取、添加、修改、删除各常用接口。控制器文件命名为FriendController.cs。

读取Get方法,在FriendController.cs中添加以下代码。

private FriendContext db = new FriendContext();public IEnumerableGet()
{return db.Friends.AsEnumerable();
}

编译后,我们访问 http://localhost:61570/api/friend(61570是随机端口),如果一切正常的话会出现以下XML格式的数据,说明数据读取成功。

转换成json格式显示

现在比较流行json格式的API接口数据,如果我们要让数据以json格式显示,需要修改App_Start目录下的WebApiConfig.cs文件,在//Web API 配置和服务的注释下添加以下代码:

config.Formatters.Remove(config.Formatters.XmlFormatter);
var jsonFormatter = config.Formatters.JsonFormatter;
jsonFormatter.SerializerSettings.Formatting = Formatting.Indented;
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

说明:第一行是去掉默认的XML格式,这样输出数据就会以json格式显示,第三行是将输出结果缩进显示,第四行则是将字段名称改成camelCase格式,即postalCode这样的json统一格式。然后我们再次运行,发现结果就是我们想要的了。

在第二部分我们将继续完成用ASP.NET Web API技术对数据进行添加、修改和删除的操作,接着我们会使用一款很好用的接口测试工具Rest Client在浏览器上对刚刚开发好的API接口进行实际运行。

这篇关于用ASP.NET Web API技术开发HTTP接口(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073854

相关文章

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

Java中的Closeable接口及常见问题

《Java中的Closeable接口及常见问题》Closeable是Java中的一个标记接口,用于表示可以被关闭的对象,它定义了一个标准的方法来释放对象占用的系统资源,下面给大家介绍Java中的Clo... 目录1. Closeable接口概述2. 主要用途3. 实现类4. 使用方法5. 实现自定义Clos

SpringBoot项目Web拦截器使用的多种方式

《SpringBoot项目Web拦截器使用的多种方式》在SpringBoot应用中,Web拦截器(Interceptor)是一种用于在请求处理的不同阶段执行自定义逻辑的机制,下面给大家介绍Sprin... 目录一、实现 HandlerInterceptor 接口1、创建HandlerInterceptor实

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失