.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问

.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问

    • 0.前言
    • 1.WebAPI
    • 2.WebAPI和MVC的区别
    • 3.如何创建一个简单WebAPI
    • 4.发布网站(WebAPI)
    • 5.本地IIS访问
    • 6.后记

0.前言

问题来源是实际使用中遇到的问题,公司希望我们接通金蝶(一个财务系统)API,把数据显示在网站上,翻看金蝶方面给的API文档,大部分都是在.NET 环境下适配的,但是我们的网站是用PHP做的,这方面文档比较少,考虑到后期可能手机端也要适配这个功能,干脆就做成一个WebAPI算了。

 注:本文使用的工具是Visual Studio 2017
    本文主要针对小白,自己想搭建WebAPI又不知道从哪下手的作为参考
    大神请批评指正 

1.WebAPI

WebAPI是网络应用程序接口。包含了广泛的功能,网络应用通过API接口,可以实现存储服务、消息服务、计算服务等能力,利用这些能力可以进行开发出强大功能的web应用。
我们在此想做的是通过WebAPI访问到数据库里的内容,通过GET方式展示出来,给其他终端调用。

 注意:本文使用的不是专门的WebAPI组件。而是简单的Web窗体(方法类似,下文详解)

2.WebAPI和MVC的区别

简单来说,MVC主要用来建站,而WebAPI更适合用来构建http服务,MVC更像是提供了一整套完整的开发框架,而WebAPI主要提供了一套RestfulAPI的开发框架,提供了较为完整的http语义支持,主要用来做开放API,更抽象。

3.如何创建一个简单WebAPI

3.1 创建一个简单项目
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第1张图片
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第2张图片
注意:框架选择4.0的话只有一个组件可以使用, 框架选择4.5,我们在这里可以看到在4.5框架下有MVC和WebAPI可以使用,但是我们在这里选择空窗体,看起来更简洁。因为我当时当时也打算要用WebAPI的,但是一开始没看懂他的访问控制,所以采用这种稍微笨一点的办法。

.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第3张图片
我们这里有一个解决方案和一个方案,为了更清楚的表示,我们新建一个控制台程序,专门用来访问数据的。(新建其他的也行主要是为了专门访问数据用的)

.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第4张图片

3.2 生成数据
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第5张图片
我们在这里做了测试数据,当然这里可以根据你的需求来变更,返回的可以是list,可以是json,可以是数组等。这个项目的主要作用就是生成可访问的数据。

3.3 访问数据

我们新建一个文件夹(右击WebAP-添加-新建文件夹),主要是为了后期可能会区分开来不同的API。
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第6张图片
我们右击文件夹,右击-添加-新建项-选择Web窗体。
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第7张图片
我们在这里添加刚才3.1新建程序的引用
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第8张图片
在first文件下的程序代码里新建一个方法用来接收数据,注意这里我们的student要变更级别为public,否则不允许访问。
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第9张图片
3.4 访问控制

使用Response.Wriete返回数据
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第10张图片
控制访问部分

.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第11张图片
使用if来简单判断用户密码是否正确
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第12张图片
完整代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebAPI.first
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // 页面 载入,验证部分
            if (user == "admin")
            {
                if (pwd == "123456")
                {
                    //用户名密码都正确,执行方法
                    GetStudent();
                    Response.End();
                    return;
                }
                else
                {
                    //密码不正确
                    Response.Write("password error!");
                    Response.End();
                    return;

                }
            }
            else
            {
                //连用户名也不正确
                Response.Write("user error!");
                Response.End();
                return;
            }


        }

        //访问控制
        protected string user
        {
            get
            {
                return Request["user"] ?? "";
            }
        }
        protected string pwd
        {
            get
            {
                return Request["pwd"] ?? "";
            }
        }

        //用来接收数据
        public void GetStudent()

        {
            string tt = ConsoleApp_get.Student.StudentGetAge();
             Response.Write(tt);
        }
    }
}

到此为止,我们的程序基本完成了,可以简单运行一下看看是不是有数据显示。下面我们来试一下发布。

4.发布网站(WebAPI)

我们把网站项目设置为启动项目。先右击解决方案,选择生成解决方案。
然后我们右击WebAPI网站这个项目选择发布。
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第13张图片

我们选择发布到文件夹,点击发布。输出列表会显示发布成功。
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第14张图片

5.本地IIS访问

在上一步中我们成功发布了网站, 下面说一下本地IIS网站搭建与访问。
打开IIS,右击网站,选择添加网站,选择物理路径(就是刚才我们发布网站的路径)
点击确定
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第15张图片
当我访问网站是会出现如下界面,这是因为你没有设置的原因。
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第16张图片
当我们在浏览器中输入以下地址时即可正常访问,可以看出地址端口后面是文件夹名称,文件下一级是我们Web窗体名称,后面的问好就是访问控制部分。

http://localhost:8088/first/mypage.aspx?user=admin&pwd=123456

.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第17张图片
我们再来测试下访问控制是否正常。
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第18张图片
.NET (C#)下简单的WebAPI构建、访问控制、发布、本地访问_第19张图片

6.后记

其实编写WebAPI的方式有很多,本文只是列举了我会的一种,并不专业,希望给像我一样的初学者使用。

你可能感兴趣的:(.NET,C#)