Web API和Web Services的区分

前些年一提及自动化测试,大多是指UI界面层的自动化测试。近几年,随着分层自动化测试概念的兴起,以及自动化测试自身的发展与细分,自动化测试包含了更多的内容。

API(Application ProgrammingInterface,应用程序编程接口)是计算接口,它定义了多个软件中介之间的交互,以及可以进行的调用或请求的类型、调用的方式、应该使用的数据格式、要遵循的约定等。此外,它还可以提供扩展机制,使用户能以各种方式在不同程度上扩展现有功能。

API测试是一种直接对应用程序编程接口进行验证的软件测试。作为集成测试的一部分,API测试可用于检查 API是否满足对应用程序的功能、可靠性、性能和安全性方面的期望。

在详细了解 API测试之前,先来看看什么是WebAPI、什么是WebServices,以及二者之间的关系。之所以需要着重了解 WebAPI,是因为虽然 API包含了不同协议类型的接口,如HTTP、TCP/IP,甚至一些行业特殊协议,如国际金融行业的FX协议等,但近几年使用范围最广的还是基于HTTP 的 Web API。

Web API可以定义为将请求从客户端系统发送到Web服务器,并将响应从 Web 服务器发送回客户端的过程。举例说明,当我们需要出差的时候,要在携程App订购机票,我们会输入启程时间、返程时间、舱位选择等相关信息,单击搜索,系统会显示多家航空公司的机票张数和价格等信息,此时携程 App 就在后台与多家航空公司的 API进行交互,从而访问航空公司的数据、因此,Web API可以看作促进客户端机器与web服务器之间通信的接口。

Web Service 和 Web API都是从一台机器到另一台机器的服务,两者包含的范围如下图:

Web Services

webservices通常使用 XML(可扩展标记语言),这意味着其比使用JSON的Web API更安全。虽然 Web Services 和 Web API在数据传输期间都提供 SSL(安全套接字层)但 Web Services 还提供 WSS(Web Services Security),安全性更高。

Web Services是 Web API的子集,其仅包含 SOAP、REST 和 XML-RPC 三种类型。

Web Services需要使用网络才能操作。

Web Services

定义:

Web Services 是一种跨平台、跨语言的网络服务,它遵循特定的标准(如SOAP协议),并且可以通过HTTP或HTTPS来调用。

特点:

协议支持:通常使用SOAP(Simple Object Access Protocol)协议,也支持REST风格的服务。

数据格式:主要使用XML作为数据交换格式。

标准严格:Web Services 遵循一套严格的定义和服务描述语言(WSDL - Web Services Description Language),这使得客户端可以自动发现和使用这些服务。

安全性:因为其标准化程度高,所以Web Services提供了更完善的安全机制,如WS-Security等。

应用场景:适合于企业级应用集成,尤其是当需要确保服务之间的强类型化和互操作性时。

Web API

Web API通常使用JSON(JavaScript Object Notation)格式传输数据。相比于XML,JSON是一种轻量级的数据交换格式,在Web Services中传输更快。

Web API是 Web Services 的超集。除了前面提到的三种类型,还有其他类型的Web Services 存在于Web API中,如 JSON-RPC。

Web API不一定需要网络操作。

Web API

定义:

Web API 是一个更广泛的概念,它指的是任何通过网络公开的功能接口,允许不同的软件应用程序相互通信。Web API 可以基于多种协议实现,最常见的形式是RESTful API。

特点:

协议支持:大多数Web API采用REST(Representational State Transfer)架构风格,但也可能基于其他协议如GraphQL。

数据格式:除了XML之外,JSON(JavaScript Object Notation)是最常用的轻量级数据交换格式,易于解析且体积小。

灵活性:Web API的设计更加灵活,没有固定的规范,开发者可以根据自己的需求设计API的结构和行为。

易用性:由于RESTful API通常更为简单直接,因此对于开发人员来说更容易理解和使用。

轻量化:相比Web Services,Web API倾向于更轻量级的解决方案,特别是在移动应用和前端开发中广泛应用。

两者的主要区别在于Web Services 更加注重标准化和互操作性,而Web API 则更加灵活、轻便,并且更多地关注于提供一个易于使用的接口。在实际应用中,选择哪种技术取决于具体的业务需求、性能考虑以及现有系统的兼容性等因素。例如,如果你的应用程序需要与其他系统紧密集成并且要求高度的互操作性和安全性,那么你可能会选择Web Services;而对于那些追求快速开发、易于维护并且对性能有一定要求的应用场景,Web API 通常是更好的选择。

阅读后若有收获,不吝关注,分享,在看等操作!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/943872.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于深度学习(HyperLPR3框架)的中文车牌识别系统-前言

参考链接: GitHub - szad670401/HyperLPR: 基于深度学习高性能中文车牌识别 High Performance Chinese License Plate Recognition Framework.基于深度学习高性能中文车牌识别 High Performance Chinese License Plate Recognition Framework. - szad670401/HyperL…

RAGFlow 基于深度文档理解构建的开源 RAG引擎 - 安装部署

RAGFlow 基于深度文档理解构建的开源 RAG引擎 - 安装部署 flyfish 1. 确保 vm.max_map_count ≥ 262144 这是指要调整Linux内核参数vm.max_map_count,以确保其值至少为262144。这个参数控制着进程可以映射的最大内存区域数量。对于某些应用程序(如Ela…

QT:一个TCP客户端自动连接的测试模型

版本 1:没有取消按钮 测试效果: 缺陷: 无法手动停止 测试代码 CMakeLists.txt cmake_minimum_required(VERSION 3.19) project(AutoConnect LANGUAGES CXX)find_package(Qt6 6.5 REQUIRED COMPONENTS Core Widgets Network)qt_standard_project_setup(…

(亲测)frp对外提供简单的文件访问服务-frp静态文件效果

话说有一天,希望将软件安装包放到网上,希望类似如下效果,正好在调试frp docker版,看到frp有个【对外提供简单的文件访问服务】功能,网上搜索也没相关效果图,所以顺手测试一下,截了几张图&#x…

一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类

机器学习实战通常是将理论与实践结合,通过实际的项目或案例,帮助你理解并应用各种机器学习算法。下面是一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的…

如何解决 ‘adb‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的问题

在cmd中输入 adb ,显示 ‘adc‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的问题 解决办法:在环境变量中添加adb所在的路径 1、找到 adb.exe 的所在的文件路径,一般在 Android 安装目录下 \sdk\platform-tools\adb.exe…

【开源】一款基于SpringBoot的智慧小区物业管理系统

一、下载项目文件 项目文件源码链接:https://pan.quark.cn/s/3998d958e182如出现网盘空间不够存的情况!!!解决办法是先用夸克手机app注册,然后保存上方链接,就可以得到1TB空间了!!&…

Linux编程(清华大学出版社2019年1月第1版)第7章-进程间通信-课后作业

7.1 输出: 4:ABCD 4:EFGH7.2 输出: numbers3 10 20 30 7.3 #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <limits.h> #include <fcntl.h> #include <sys/types.h> #include <stdint.h> #includ…

线性代数行列式

目录 二阶与三阶行列式 二元线性方程组与二阶行列式 三阶行列式 全排列和对换 排列及其逆序数 对换 n阶行列式的定义 行列式的性质 二阶与三阶行列式 二元线性方程组与二阶行列式 若是采用消元法解x1、x2的话则得到以下式子 有二阶行列式的规律可得&#xff1a;分…

canvas之进度条

canvas之进度条 效果&#xff1a; 封装的组件 <template><div class"circle" :style"{ width: props.radius px, height: props.radius px }"><div class"circle-bg" :style"{ width: props.radius - 5 px, height: pr…

再生核希尔伯特空间(RKHS)上的分位回归

1. 基本定义和理论基础 1.1 再生核希尔伯特空间(RKHS) 给定一个非空集合 X \mathcal{X} X&#xff0c;一个希尔伯特空间 H \mathcal{H} H 称为再生核希尔伯特空间&#xff0c;如果存在一个函数 K : X X → R K: \mathcal{X} \times \mathcal{X} \rightarrow \mathbb{R} K…

Nature+Science=ONNs(光学神经网络)

2024深度学习发论文&模型涨点之——光学神经网络 光学神经网络&#xff08;Optical Neural Networks, ONNs&#xff09;是一种利用光学器件&#xff08;如激光、光学调制器、滤波器、探测器等&#xff09;来模拟和实现神经网络推理功能的计算模型。这种网络通过利用光信号的…

武泳樽携手AI AD Manager荣获红点奖,智能广告管理系统备受瞩目

近日,由著名设计师武泳樽主导设计的AI AD Manager在2024年红点奖评选中荣获大奖,这一殊荣不仅彰显了他在创新设计领域的卓越实力,更巩固了AI AD Manager作为智能广告技术标杆的地位。凭借独特的用户体验设计、尖端的AI驱动功能和出色的技术融合,AI AD Manager在激烈的国际竞争中…

OCR实践-问卷表格统计

前言 书接上文 OCR实践—PaddleOCROCR实践-Table-Transformer 本项目代码已开源 放在 Github上&#xff0c;欢迎参考使用&#xff0c;Star https://github.com/caibucai22/TableAnalysisTool 主要功能说明&#xff1a;对手动拍照的问卷图片进行统计分数&#xff08;对应分数…

flask后端开发(2):URL与视图

目录 URL定义request获取请求参数 gitcode地址&#xff1a; https://gitcode.com/qq_43920838/flask_project.git URL定义 from flask import FlaskappFlask(__name__)app.route(/) def hello_world():return Hello World!app.route(/profile) def profile():return 我是个人…

基于Sentinel的服务保护方案的三种方式(请求限流、线程隔离、服务熔断)超详细讲解

目录 1、三种方式介绍 1.1请求限流 1.2 线程隔离方案 1.3 服务熔断 2、基于sentinel实现 2.1 启动sentinel 2.2 基于springboot整合sentinel 2.2.1请求限流 2.2.2请求隔离 2.2.2.1 OpenFeign整合Sentinel 2.2.3 服务熔断 2.2.3.1 编写降级代码 2.2.3.2 服务熔断 1、…

小程序基础 —— 02 微信小程序账号注册

微信小程序账号注册 小程序开发与网页开发不一样&#xff0c;在开始微信小程序开发之前&#xff0c;需要访问微信公众平台&#xff0c;注册一个微信小程序账号。 有了小程序的账号以后&#xff0c;才可以开发和管理小程序&#xff0c;后续需要通过该账号进行开发信息的设置、…

箭头函数与普通函数的区别

箭头函数&#xff08;Arrow Functions&#xff09;是ES6&#xff08;ECMAScript 2015&#xff09;引入的一种新的函数定义方式&#xff0c;它提供了更简洁的语法和一些与传统函数表达式不同的行为。 以下是箭头函数与普通函数的主要区别&#xff1a; 语法上的简化&#xff1a; …

uniapp实现APP、小程序与webview页面间通讯

需求&#xff1a; 1、需要在Uniapp开发的APP或小程序页面嵌入一个H5网页&#xff0c;需要拿到H5给APP传递的数据。 2、并且这个H5是使用vuevant开发的。&#xff08;其实跟使用uniapp开发H5一样&#xff09; 实现步骤&#xff1a; 1、首先需要兼容多端和App端&#xff0c;因…

iPhone 17 :史诗级大改,120Hz 全面普及

资深果粉应该都听过一个说法&#xff1a;“iPhone 买单不买双”。这个“规律”似乎在iPhone 16上也得到了印证。 近段时间&#xff0c;各方消息都在指明一点&#xff1a;iPhone 16 只是大餐前的小菜&#xff0c;iPhone 17才是真正带来革命性提升的一代神机。下一代 iPhone 17&…