Web Services 服务 是不是过时了?创建 Web Services 服务实例

2024-02-09 20:12

本文主要是介绍Web Services 服务 是不是过时了?创建 Web Services 服务实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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 服务

在这里插入图片描述

2.引用 mysql package

下载地址 https://dev.mysql.com/downloads/connector/net/
需要先安装 mysql 驱动

在这里插入图片描述
然后选择 dll 应用
在这里插入图片描述

在这里插入图片描述

最后 本code 使用是网上的 classicmodels 数据库
可以去下载 classicmodels 数据库具体如下
点击:classicmodels

也可以去 下面我的博客资源下载
https://download.csdn.net/download/tomxjc/88685970

用的是 MySQL 8.0

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

主要就是加入 这段

<?xml version="1.0" encoding="utf-8"?>
<!--有关如何配置 ASP.NET 应用程序的详细信息,请访问https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration><connectionStrings><add name="MySqlConnection"connectionString="Server=localhost;Database=classicmodels;User Id=root;Password=123456;"providerName="MySql.Data.MySqlClient" /></connectionStrings><system.web><compilation debug="true" strict="false" explicit="true" targetFramework="4.7.2" /><httpRuntime targetFramework="4.7.2" /></system.web><system.codedom><compilers><compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" /><compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" /></compilers></system.codedom>
</configuration>

在 vb 中调用的语法是

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

4.然后写一个 select 的方法

 <WebMethod()>Public Function QueryDatabase() As StringDim result As String = ""TryUsing connection As New MySqlConnection(connectionString)connection.Open()' Specify your MySQL queryDim query As String = "SELECT * FROM Products where ='Classic Cars'"' Execute the queryUsing command As New MySqlCommand(query, connection)Using reader As MySqlDataReader = command.ExecuteReader()Dim xmlResult As New XmlDocument()' Create the root elementDim rootElement As XmlElement = xmlResult.CreateElement("Data")xmlResult.AppendChild(rootElement)While reader.Read()' Create individual data elementsDim 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 Whileresult = xmlResult.OuterXmlEnd UsingEnd UsingEnd UsingCatch ex As Exception' Handle exceptionsresult = $"<Error>{ex.Message}</Error>"End TryReturn resultEnd Function

验证数据
在这里插入图片描述
结果返回是这样,返回是 字符类型,不是应该自动识别的吗?看来是没有XML序列化
在这里插入图片描述

5.方法改造 XML序列化

 <WebMethod()>Public Function QueryDatabaseXmlSerializer() As XmlDocument'这个表代码XML序列化 并返回 XmlDocument 类型Dim xmlDoc As New XmlDocument()TryUsing connection As New MySqlConnection(connectionString)connection.Open()' Specify your MySQL queryDim query As String = "SELECT * FROM Products WHERE productline = 'Classic Cars'"' Execute the queryUsing 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 themDim 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 XMLDim serializer As New XmlSerializer(GetType(List(Of Products)))Using writer As XmlWriter = xmlDoc.CreateNavigator().AppendChild()serializer.Serialize(writer, items)End UsingEnd UsingEnd UsingEnd UsingReturn xmlDocCatch ex As Exception' Handle exceptionsDim errorDoc As New XmlDocument()errorDoc.LoadXml($"<Error>{ex.Message}</Error>")Return errorDocEnd TryEnd Function

在加入一个类

Public Class ProductsPublic Property productCode As StringPublic Property productName As StringPublic Property productDescription As StringPublic Property productline As String
End Class

再验证一下

在这里插入图片描述

在这里插入图片描述

6.写一个带参数的

<WebMethod()>
Public Function QueryProductByCodeXmlSerializer(productCode As String) As XmlDocumentDim xmlDoc As New XmlDocument()TryUsing connection As New MySqlConnection(connectionString)connection.Open()' Specify your MySQL query with a parameterDim query As String = "SELECT * FROM Products WHERE productCode = @ProductCode"' Execute the queryUsing command As New MySqlCommand(query, connection)' Add the parameter to the commandcommand.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 themDim 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 XMLDim serializer As New XmlSerializer(GetType(List(Of Products)))Using writer As XmlWriter = xmlDoc.CreateNavigator().AppendChild()serializer.Serialize(writer, items)End UsingEnd UsingEnd UsingEnd UsingReturn xmlDocCatch ex As Exception' Handle exceptionsDim errorDoc As New XmlDocument()errorDoc.LoadXml($"<Error>{ex.Message}</Error>")Return errorDocEnd Try
End Function

验证数据
在这里插入图片描述

显示
在这里插入图片描述

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 ChinaCityPublic Property CityCode As StringPublic Property City As String
End Class
<WebMethod()>
Public Function InsertCity(cityCode As String, cityName As String) As XmlDocumentDim errorDoc, successfulDoc As New XmlDocument()TryUsing connection As New MySqlConnection(connectionString)connection.Open()' Specify your MySQL insert queryDim query As String = "INSERT INTO china_city (citycode, city) VALUES (@CityCode, @CityName)"' Execute the insert queryUsing command As New MySqlCommand(query, connection)' Add parameters to the commandcommand.Parameters.AddWithValue("@CityCode", cityCode)command.Parameters.AddWithValue("@CityName", cityName)' Execute the insert queryDim rowsAffected As Integer = command.ExecuteNonQuery()' Check if the insertion was successfulIf rowsAffected > 0 ThensuccessfulDoc.LoadXml($"<Result>Insertion successful</Result>")Return successfulDocElseerrorDoc.LoadXml($"<Error>No rows inserted</Error>")Return errorDocEnd IfEnd UsingEnd UsingCatch ex As Exception' Handle exceptionserrorDoc.LoadXml($"<Error>{ex.Message}</Error>")Return errorDocEnd Try
End Function

验证数据
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

chatGPT 给出了答案
在这里插入图片描述

总结

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

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

这篇关于Web Services 服务 是不是过时了?创建 Web Services 服务实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

java String.join()方法实例详解

《javaString.join()方法实例详解》String.join()是Java提供的一个实用方法,用于将多个字符串按照指定的分隔符连接成一个字符串,这一方法是Java8中引入的,极大地简化了... 目录bVARxMJava String.join() 方法详解1. 方法定义2. 基本用法2.1 拼接

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

Macos创建python虚拟环境的详细步骤教学

《Macos创建python虚拟环境的详细步骤教学》在macOS上创建Python虚拟环境主要通过Python内置的venv模块实现,也可使用第三方工具如virtualenv,下面小编来和大家简单聊聊... 目录一、使用 python 内置 venv 模块(推荐)二、使用 virtualenv(兼容旧版 P

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

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

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