所有文章 > API开发 > VB.NET 创建ASP.NET WebAPI及应用(一)

VB.NET 创建ASP.NET WebAPI及应用(一)

什么是API?

    应用程序接口API,Application Programming Interface)是基于编程语言构建的结构,使开发人员更容易地创建复杂的功能。它们抽象了复杂的代码,并提供一些简单的接口规则直接使用。

为什么要用API?

       第一,它使用HTTP协议,可以很好的兼容其他语言,B4A,JS,PHP,JAVA,VBA,VB6等等;

        第二,它可以很好的保护我们的隐私,当我们用VBA,VB6等语言访问数据库时,一般都是直接使用驱动TCP连接,然后,数据库密码账号等敏感信息都保存在代码里面,很容易就被人破解拿走;

         第三,它可以把我们的业务逻辑很好的隐藏起来,用户只要传入参数,获取数据即可,根本不知道我们是如何逻辑取得数据;


一、打开我们的VS Studio,创建一个ASP.NET项目

二、精简APS.NET程序(这里只说WebAPI哈,其他的东西砍掉)

  2.1 要砍掉的目录如下:

  •  Areas
  • Content
  • fonts
  • Scripts
  • Views

  2.1 砍掉App_Start目录下的BundleConfig.vb文件,然后在Global.asax下删除相应的配置BundleConfig.RegisterBundles(BundleTable.Bundles)

2.3 砍了这么多东西,我们要先测试一下项目能不能运行起来!!!!!!

    测试前先把Controllers目录下的HomeController.vb控制器编辑一下

把原来的代码改一下

''原代码
Public Class HomeController
Inherits System.Web.Mvc.Controller

Function Index() As ActionResult
ViewData("Title") = "Home Page"

Return View()
End Function
End Class

新代码

Public Class HomeController
Inherits Controller

Function Index() As String
Return "你好啊!WebAPI服务器"
End Function
End Class

运行看一下效果!!!!!!!


三、下面来介绍一下精简后App_Start目录的文件吧!!(都是一些自己的见解)

    3.1,首先出场的是我们的FilterConfig.vb同学,正如名字,他就是一个过滤器的配置,即可以配置respond也可以配置request的内容

    3.2,接下来就是我们的路由大侠了RouteConfig.vb,这里面可以配置MVC路由和API等相关路由

    3.3,最后就是我们的主角WebApiConfig.vb配置API相关属性和主路由

四、最后说的就是最常用的部分控制器目录Controllers,目录里面已经生成了两个默认的控制器,分别是MVC控制器HomeController.vb和WebAPI控制器ValuesController.vb

    4.1 MVC控制器HomeController.vb继承了MVC的控制器基类,不知我们的主角,但是可以配置一个主页;

    4.2 WebAPI控制器ValuesController.vb继承了ApiController的控制器基类

    4.3 我们再次运行一下项目,看一下WebAPI控制器的访问,MVC控制已配置默认控制器Home启动项目是,第一眼看到的即是!!!

        4.3.1 看下我们的WebAPI路由,我们跟着访问即可!!默认控制器是Values所以我们的地址是 localhost:63337/api/values/

             4.3.2 得到的结果就是 value1 value2 的XML格式结果

4.4 可能有同学就会问了,怎么把返回的结果改成JSON格式呢?

只要在App_Start目录下WebApiConfig.vb的配置文件里面添加以下代码即可实现

'配置eb API返回JSON字符串
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
config.Formatters.Remove(config.Formatters.XmlFormatter)
Dim jsonFormatter As Object = config.Formatters.OfType(Of JsonMediaTypeFormatter)().First()
jsonFormatter.SerializerSettings.ContractResolver = New CamelCasePropertyNamesContractResolver()

再看一下返回的结果

五、我们在C目录里面Controllers新建一个LoginController.vb登录控制器简单测试一下

代码如下

Imports System.Net
Imports System.Web.Http

Public Class LoginController
Inherits ApiController

' GET api/login?
' <HttpGet> ''请求方式
' <ActionName("Token")> ''方法名称
<AcceptVerbs("GET", "HEAD")> ''允许的请求方式
<Route("api/login/token")> ''自定义路由
Public Function GetToken(<FromUri()> uid As String, <FromUri()> pwd As String) As Object
If uid = "admin" And pwd = "123" Then
Return New Responobj With {
.Code = 200,
.Msg = "成功",
.Info = "登录系统成功",
.Datas = Now().GetHashCode
}
Else
Return New Responobj With {
.Code = 400,
.Msg = "失败",
.Info = "账户或密码错误",
.Datas = Nothing
}
End If
End Function


''' <summary>
''' 定义一个返回体
''' </summary>
Public Class Responobj
Public Property Code As Integer
Public Property Msg As String
Public Property Info As String
Public Property Datas As Object
End Class


End Class

5.1 输入错误账户密码测试一下效果


5.2 输入正确密码看一下效果

到此结束啦!!

文章转自微信公众号@办公魔盒

#你可能也喜欢这些API文章!