Web API学习Day1

Web API 学习 Day 1

理解WebAPI

什么是API?

中文翻译是应用程序接口,既然是接口那就抽象了复杂的代码,提供了一些简单的规则直接使用。相当于在室内用电只需要把插头插进插座。通常是开发人员在其应用中可用于与用户 Web 浏览器组件或用户计算机上的其他软件/硬件或第三方网站和服务进行交互的一组代码功能(例如方法、属性、事件和网址)。

API 的用户是开发软件的工程师,比如一个软件服务可能会在多种设备上被人使用,例如手机、浏览器、可穿戴设备等,这些设备必须要和同一个后端数据库互动,才可能呈现出一致的内容。为了实现上述功能,会设计一个 API 接口,让各个设备的开发团队共享同一个接口去使用数据库。

什么是Web API?

关键点——可以对接各种客户端(浏览器、移动设备),构建http服务的框架(待学习)。在ASP.NET框架地位如图:

Web API学习Day1

Web API负责构建http常规服务,而SingalR主要负责的是构建实时服务,例如股票,聊天室,在线游戏等实时性要求比较高的服务。

为什么要用Web API?

最重要的是可以构建面向各种客户端的服务。示意图如下:

Web API学习Day1

Web API项目的创建

模板创建

选择“ASP.NET Core Web 应用程序”模板,项目名为TodoAPI,这事自动创建了一个天气预报的API,运行网页中会出现一系列的天气信息。我们目标要建立一个待办事项的API。

添加模型类

Models是一组表示应用管理数据的类,所以在文件夹里添加一个TodoItem类,里面包含了要管理的字段:Id、Name、IsComplete

public class TodoItem
    {
        //添加字段的属性,属性用作关系数据库中唯一的键
        public long Id { get; set; }
        public string Name { get; set; }
        public bool IsComplete { get; set; }
        //是否完成
    }

添加Database Context(未理解)

这是协调数据实体框架功能(Entity Framework functionality)的主要类,这个类是派生Microsoft.EntityFrameworkCore.DbContext,在TodoContext类中添加如下代码:

//添加TodoContext数据库上下文
    public class TodoContext:DbContext
    {
        public TodoContext(DbContextOptions<TodoContext> options):base(options)
        {
        }
        public DbSet<TodoItem> TodoItems { get; set; }

构建Controllers

在已有的Controller文件夹中建一个新的API控制器,modules和context选择对应的TodoItem和TodoContext。

相关疑惑点

在Web API项目的构建中发现有Modole和Controller,这和MVC框架类似,所以有了Web API和MVC有什么区别和联系的疑惑。

MVC VS Web API

MVC主要是用来建站,Web API主要是用来构建 http 数据服务。

  • 技术实现层面:Web API被砍去了 view 层 ,整体轻快
  • Web API 有自己独特的消息处理管道
  • Web API 有自己独特的路由系统
  • Web API的托管层也不一样,不单只web托管(例如: IIS) , 还能自托管 (寄宿在windows 进程),还能托管在 OWIN的实现着(例如: katana);MVC 只能托管在 IIS 上

HTTP数据服务

HTTP协议定义了什么?

  • 定义了浏览器怎样向万维网服务器请求万维网文档

  • 定义了服务器怎样把文档传送给浏览器

    大致工作流程:

    Web API学习Day1

HTTP请求方法

  • Get:获取查询资源,对应DB中的Select操作,其只查询而不修改数据,参数在URL中传递,而非Rquest-Body中传递,不安全
  • Set:向系统中更新数据,对应DB中的Update操作,参数在Requet-Body中传递
  • Put:向系统中插入数据,对应DB中的Insert操作,不带验证机制,不安全
  • Delete:向系统中删除数据,对应DB中的Delete操作
  • Head:返回Http-Responce头部信息
  • Options:一般用来询问URI支持的方法,查询服务器的性能

Db Context

Db Context 实例表示与数据库的会话,可用于查询和保存实体实例, 是工作单元和存储库模式的组合。

初始化Db Context类的新实例,可以利用方法Database()提供上下文的数据库相关信息和操作的访问,利用方法Model()获取有关实体、实体之间的关系以及他们如何映射到数据库的元数据。

上一篇:VNC 使用


下一篇:CentOs 设置静态IP 方法[测试没问题]