Web Services 服务 是不是过时了?创建 Web Services 服务实例
作者:mmseoamin日期:2024-02-20

Web Services 是不是过时了?

今天是兔年最后一天,先给大家拜个早年 。

昨天上午视频面试一家公司需要开发Web Services 服务,这个也没有什么,但还需要用 VB.net 开发。这个是多古老的语言了,让我想起来了 10年 前 写 VBA 的时候,那就写了一个玩玩?

文章目录

  • Web Services 是不是过时了?
  • 前言
  • 一、准备工作
  • 二、基本配置步骤
    • 1.选择 web 服务 asmx 服务
    • 2.引用 mysql package
    • 3.web.config 文件加入数据库connectionString
    • 4.然后写一个 select 的方法
    • 5.方法改造 XML序列化
    • 6.写一个带参数的
    • 7.写一个 Insert的方法
    • 8.最后疑问?Web Services 和Web API 那个运用的更广泛呢?
    • 总结

      前言

      网上百度了下:基础知识大家了解下 :

      选择使用 Web Services 还是 Web API 取决于您的具体需求和技术栈。这两者都是用于实现分布式系统和服务的技术,但它们有一些区别。

      Web Services:

      SOAP (Simple Object Access Protocol): Web Services 常基于 SOAP 协议,这是一种使用 XML 格式进行通信的协议。

      协议和标准: Web Services 通常严格遵循一系列协议和标准,如 WSDL (Web Services Description Language) 用于描述服务,UDDI (Universal Description, Discovery, and Integration) 用于服务的发现。

      跨语言性: 由于使用了标准化的协议和格式,Web Services 可以在不同平台和语言之间进行通信。

      Web API:

      RESTful (Representational State Transfer): Web API 常基于 RESTful 架构,使用 JSON 或 XML 进行数据传输。

      轻量级: 相对于 Web Services,Web API 更轻量级,通常使用 HTTP 协议进行通信,不像 Web Services 那样依赖较多的协议和标准。

      更简单: Web API 更简单易用,通常适合构建基于 HTTP 的轻量级服务,特别是在移动应用和单页应用中。

      一、准备工作

      上午查了一些资料

      需要安装 mysql 数据库 8.0

      需要安装 Microsoft Visual Studio Professional 2022 + vb.net

      需要安装 IIS 服务

      需要安装 mysql-connector-net-8.3.0 库

      自己的 系统是 windows 10

      好了基本就些就是开发环境了

      二、基本配置步骤

      1.选择 web 服务 asmx 服务

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第1张

      2.引用 mysql package

      下载地址 https://dev.mysql.com/downloads/connector/net/

      需要先安装 mysql 驱动

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第2张

      然后选择 dll 应用

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第3张

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第4张

      最后 本code 使用是网上的 classicmodels 数据库

      可以去下载 classicmodels 数据库具体如下

      点击:classicmodels

      也可以去 下面我的博客资源下载

      https://download.csdn.net/download/tomxjc/88685970

      用的是 MySQL 8.0

      3.web.config 文件加入数据库connectionString

      主要就是加入 这段

      
      
      
          
      		
          
      	
        
          
          
        
        
          
            
            
          
        
      
      

      在 vb 中调用的语法是

      Public connectionString As String = ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString
      

      4.然后写一个 select 的方法

       
       Public Function QueryDatabase() As String
           Dim result As String = ""
           Try
               Using connection As New MySqlConnection(connectionString)
                   connection.Open()
                   ' Specify your MySQL query
                   Dim query As String = "SELECT * FROM Products where ='Classic Cars'"
                   ' Execute the query
                   Using command As New MySqlCommand(query, connection)
                       Using reader As MySqlDataReader = command.ExecuteReader()
                           Dim xmlResult As New XmlDocument()
                           ' Create the root element
                           Dim rootElement As XmlElement = xmlResult.CreateElement("Data")
                           xmlResult.AppendChild(rootElement)
                           While reader.Read()
                               ' Create individual data elements
                               Dim dataElement As XmlElement = xmlResult.CreateElement("Item")
                               Dim idElement As XmlElement = xmlResult.CreateElement("productCode")
                               idElement.InnerText = reader("productCode").ToString()
                               dataElement.AppendChild(idElement)
                               Dim nameElement As XmlElement = xmlResult.CreateElement("productName")
                               nameElement.InnerText = reader("productName").ToString()
                               dataElement.AppendChild(nameElement)
                               Dim lineElement As XmlElement = xmlResult.CreateElement("productline")
                               lineElement.InnerText = reader("productline").ToString()
                               dataElement.AppendChild(lineElement)
                               Dim descElement As XmlElement = xmlResult.CreateElement("productDescription")
                               descElement.InnerText = reader("productDescription").ToString()
                               dataElement.AppendChild(descElement)
                               rootElement.AppendChild(dataElement)
                           End While
                           result = xmlResult.OuterXml
                       End Using
                   End Using
               End Using
           Catch ex As Exception
               ' Handle exceptions
               result = $"{ex.Message}"
           End Try
           Return result
       End Function
      

      验证数据

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第5张

      结果返回是这样,返回是 字符类型,不是应该自动识别的吗?看来是没有XML序列化

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第6张

      5.方法改造 XML序列化

       
       Public Function QueryDatabaseXmlSerializer() As XmlDocument
           '这个表代码XML序列化 并返回 XmlDocument 类型
           Dim xmlDoc As New XmlDocument()
           Try
               Using connection As New MySqlConnection(connectionString)
                   connection.Open()
                   ' Specify your MySQL query
                   Dim query As String = "SELECT * FROM Products WHERE productline = 'Classic Cars'"
                   ' Execute the query
                   Using command As New MySqlCommand(query, connection)
                       Using reader As MySqlDataReader = command.ExecuteReader()
                           Dim items As New List(Of Products)()
                           While reader.Read()
                               ' Create instances of the Item class and populate them
                               Dim item As New Products() With {
                                   .productCode = reader("productCode").ToString(),
                                   .productName = reader("productName").ToString(),
                                   .productline = reader("productline").ToString(),
                                   .productDescription = reader("productDescription").ToString()
                               }
                               items.Add(item)
                           End While
                           ' Serialize the list of items to XML
                           Dim serializer As New XmlSerializer(GetType(List(Of Products)))
                           Using writer As XmlWriter = xmlDoc.CreateNavigator().AppendChild()
                               serializer.Serialize(writer, items)
                           End Using
                       End Using
                   End Using
               End Using
               Return xmlDoc
           Catch ex As Exception
               ' Handle exceptions
               Dim errorDoc As New XmlDocument()
               errorDoc.LoadXml($"{ex.Message}")
               Return errorDoc
           End Try
       End Function
      

      在加入一个类

      Public Class Products
          Public Property productCode As String
          Public Property productName As String
          Public Property productDescription As String
          Public Property productline As String
      End Class
      

      再验证一下

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第7张

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第8张

      6.写一个带参数的

      
      Public Function QueryProductByCodeXmlSerializer(productCode As String) As XmlDocument
          Dim xmlDoc As New XmlDocument()
          Try
              Using connection As New MySqlConnection(connectionString)
                  connection.Open()
                  ' Specify your MySQL query with a parameter
                  Dim query As String = "SELECT * FROM Products WHERE productCode = @ProductCode"
                  ' Execute the query
                  Using command As New MySqlCommand(query, connection)
                      ' Add the parameter to the command
                      command.Parameters.AddWithValue("@ProductCode", productCode)
                      Using reader As MySqlDataReader = command.ExecuteReader()
                          Dim items As New List(Of Products)()
                          While reader.Read()
                              ' Create instances of the Products class and populate them
                              Dim item As New Products() With {
                              .productCode = reader("productCode").ToString(),
                              .productName = reader("productName").ToString(),
                              .productline = reader("productline").ToString(),
                              .productDescription = reader("productDescription").ToString()
                          }
                              items.Add(item)
                          End While
                          ' Serialize the list of items to XML
                          Dim serializer As New XmlSerializer(GetType(List(Of Products)))
                          Using writer As XmlWriter = xmlDoc.CreateNavigator().AppendChild()
                              serializer.Serialize(writer, items)
                          End Using
                      End Using
                  End Using
              End Using
              Return xmlDoc
          Catch ex As Exception
              ' Handle exceptions
              Dim errorDoc As New XmlDocument()
              errorDoc.LoadXml($"{ex.Message}")
              Return errorDoc
          End Try
      End Function
      

      验证数据

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第9张

      显示

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第10张

      7.写一个 Insert的方法

      mysql 建表

      CREATE TABLE `china_city` (
        `citycode` varchar(10) NOT NULL,
        `city` varchar(50) NOT NULL,
        PRIMARY KEY (`citycode`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
      

      代码先写了 类

      Public Class ChinaCity
          Public Property CityCode As String
          Public Property City As String
      End Class
      
      
      Public Function InsertCity(cityCode As String, cityName As String) As XmlDocument
          Dim errorDoc, successfulDoc As New XmlDocument()
          Try
              Using connection As New MySqlConnection(connectionString)
                  connection.Open()
                  ' Specify your MySQL insert query
                  Dim query As String = "INSERT INTO china_city (citycode, city) VALUES (@CityCode, @CityName)"
                  ' Execute the insert query
                  Using command As New MySqlCommand(query, connection)
                      ' Add parameters to the command
                      command.Parameters.AddWithValue("@CityCode", cityCode)
                      command.Parameters.AddWithValue("@CityName", cityName)
                      ' Execute the insert query
                      Dim rowsAffected As Integer = command.ExecuteNonQuery()
                      ' Check if the insertion was successful
                      If rowsAffected > 0 Then
                          successfulDoc.LoadXml($"Insertion successful")
                          Return successfulDoc
                      Else
                          errorDoc.LoadXml($"No rows inserted")
                          Return errorDoc
                      End If
                  End Using
              End Using
          Catch ex As Exception
              ' Handle exceptions
              errorDoc.LoadXml($"{ex.Message}")
              Return errorDoc
          End Try
      End Function
      

      验证数据

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第11张

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第12张

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第13张

      8.最后疑问?Web Services 和Web API 那个运用的更广泛呢?

      chatGPT 给出了答案

      Web Services 服务 是不是过时了?创建 Web Services 服务实例,在这里插入图片描述,第14张

      总结

      以上源码下载如下https://download.csdn.net/download/tomxjc/88822612

      好了,今天就介绍到这里。希望大家喜欢, 一键三连 ,福星高照