API、REST API、RESTful API 和 Web Service 之间的区别

API、REST API、RESTful API 和 Web Service 之间的区别

API

API,全称是 Application Programming Interface,翻译过来就是“应用程序编程接口”。

1.技术细节和示例代码:

API 通常由端点(URL)、方法(GET、POST 等)和数据格式(JSON、XML 等)组成。
示例:调用天气 API 获取天气数据:

import requests response = requests.get("http://api.weatherapi.com/v1/city?key=aaaaaa&q=Shanghai") data = response.json()print(data)

这里说的是网络 API(Web API),即通过网络请求和响应进行通信的 API。

2.API 的作用和应用场景

API 的作用是让不同的软件系统能够互相对话,比如你的手机 APP 可以通过 API 获取新闻信息,或者一个银行网站通过 API 处理支付。

Web Service

Web Service 就是通过网络进行的服务,允许不同的应用程序通过网络互相通信。它们使用标准的 XML 消息格式,可以在不同的平台和语言之间进行通信。

1.技术细节和示例代码:

Web Service 通常使用 SOAP 协议或 REST 架构。示例:使用 SOAP 请求天气信息

POST /weather HTTP/1.1 Host: www.example.com Content-Type: text/xml; charset=utf-8 Content-Length: nnn <?xml version="1.0"?><soap:Envelopexmlns:soap="http://www.w3.org/2001/12/soap-envelope"soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"><soap:Bodyxmlns:m="http://www.example.org/weather"><m:GetWeather><m:City>London</m:City></m:GetWeather></soap:Body></soap:Envelope>

2.Web Service 的类型

SOAP Web Service:使用 SOAP 协议,比较复杂但功能强大。
RESTful Web Service:使用 HTTP 协议,更简单灵活。

3.Spring Boot环境中实现方式

在SOAP的实现中,Spring Web Services(Spring WS)和Java API for XML Web Services(JAX-WS)是两种主要的技术选择。Spring WS 是专为简化SOAP Web Services的开发而设计的,提供了一种创建文档驱动、基于SOAP的服务的方式,特别适合需要深度集成和复杂配置的企业级应用。相比之下,JAX-WS 是遵循WS-*标准的更为基础和轻量级的Java API,适用于需要标准Java支持且配置较少的场景。

@WebService注解来自JAX-WS(Java API for XML Web Services)标准,它是一个专门用于创建SOAP(Simple Object Access Protocol)Web服务的API。这种方法通常用于实现符合WS-标准的Web服务,并且是Java EE规范的一部分。
@Endpoint注解来自Spring Web Services(Spring WS)项目,它专门用于处理SOAP Web服务的开发。Spring WS 不依赖于企业Java的标准,而是建立在Spring框架的基础之上,提供更灵活的配置和更好的集成。

REST API

REST 代表“表现层状态转化”,是一种架构风格,而不是协议,强调资源的表示和状态的转移,REST API 就是遵循这种风格设计的 API。使用现有的 HTTP 协议,不需要额外的协议。

1.技术细节和示例代码:

REST API 使用 HTTP 协议进行通信,常用 JSON 格式传输数据。示例:GET 请求获取用户信息

import requests response = requests.get("https://userinfo.com/users/1") user = response.json()print(user)

2.REST API 的工作原理

REST API 把所有东西看作资源,每个资源都有一个唯一的 URI(比如网址)。你可以通过不同的 HTTP 动词(GET、POST、PUT、DELETE 等)来操作这些资源。

GET/users:获取所有用户 POST/users:创建新用户 GET/users/{id}:获取特定用户 PUT/users/{id}:更新特定用户 DELETE/users/{id}:删除特定用户 

RESTful API

RESTful API 是指那些遵循 REST 原则的 API。其实,REST API 和 RESTful API 可以看作是同一个东西。

1.技术细节和示例代码:

RESTful API 设计需要遵循一些最佳实践,如资源命名规范、版本控制等。示例:POST 请求创建新用户

import requests user_data ={"name":"John Chen","username":"Johnchen","email":"[email protected]"} response = requests.post("https://userinfo.com/users", json=user_data) new_user = response.json()print(new_user)

2.REST API 的设计原则

资源的表示:所有的资源都有自己的 URI。
状态转移:客户端和服务器之间通过 HTTP 动词进行状态转移。
超媒体(HATEOAS):响应中包含下一步操作的链接。

总结

概念对比

概念对比

性能和效率对比

在这里插入图片描述

安全性对比

在这里插入图片描述

Read more

【AIGC】ChatGPT 实用技巧:文本与数据的结构化方法全解析

【AIGC】ChatGPT 实用技巧:文本与数据的结构化方法全解析

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳]本文专栏: AIGC |ChatGPT 文章目录 * 💯前言 * 💯中文排版序号 * 1. 一级标题(First-Level Title) * 2. 二级标题(Second-Level Title) * 3. 三级标题(Third-Level Title) * 4. 四级标题(Fourth-Level Title) * 💯Markdown 语法 * 一级标题(First-Level Heading) * 二级标题(Second-Level Heading) * 子标题(Subheadings) * 列表(Lists) * 无序列表 * 有序列表 * 加粗和斜体(Bold and Italics) * 加粗 * 斜体 * 💯编程语法也是结构化 * YAML 语法结构的例子 * 1. 层级关系(

GitHub Copilot

1. GitHub Copilot(最适配 Vue3 的主流选择) GitHub Copilot 是目前最成熟的 AI 代码助手之一,对 Vue3 的 <script setup>、组合式 API(如 ref、reactive、computed)等语法支持极佳,能根据上下文生成 Vue3 组件、逻辑代码、甚至单元测试。 安装步骤: 1. 打开 VS Code,点击左侧边栏的「扩展」图标(或快捷键 Ctrl+Shift+X)。 2. 在搜索框输入 GitHub Copilot,找到官方插件(图标是章鱼猫),点击「安装」

faster-whisper词级时间戳:从语音到精准定位的完整指南

还在为会议录音中找不到关键决策点而烦恼?想要精确定位视频中某句话的准确时间?faster-whisper的词级时间戳功能正是你需要的解决方案。本文将带你从零开始,全面掌握这项强大的语音定位技术。 【免费下载链接】faster-whisperplotly/plotly.js: 是一个用于创建交互式图形和数据可视化的 JavaScript 库。适合在需要创建交互式图形和数据可视化的网页中使用。特点是提供了一种简单、易用的 API,支持多种图形和数据可视化效果,并且能够自定义图形和数据可视化的行为。 项目地址: https://gitcode.com/gh_mirrors/fa/faster-whisper 什么是词级时间戳? 词级时间戳是faster-whisper提供的一项高级功能,能够在语音转写过程中为每个词语生成精确的起止时间。不同于传统的段落级时间戳,词级时间戳能够实现毫秒级的语音内容定位,让语音检索变得前所未有的精准。 快速上手:三行代码启用词级时间戳 想要体验词级时间戳的强大功能?只需要三行代码: from faster_whisper import Whisp

ComfyUI-Manager终极低配置设备优化指南:10个技巧提升AI绘画效率

ComfyUI-Manager终极低配置设备优化指南:10个技巧提升AI绘画效率 【免费下载链接】ComfyUI-Manager 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager ComfyUI-Manager是专为ComfyUI设计的扩展管理工具,能够高效管理自定义节点的安装、更新和配置。对于低配置设备用户来说,优化ComfyUI-Manager的设置可以显著提升AI绘画工作流的性能和稳定性。本指南将分享10个实用技巧,帮助你在资源有限的设备上获得最佳使用体验。😊 1. 理解ComfyUI-Manager的核心功能与架构 ComfyUI-Manager作为ComfyUI的扩展管理器,提供了完整的自定义节点生态系统管理功能。通过manager_core.py和manager_server.py等核心模块,它实现了节点的自动化安装、依赖管理和版本控制。对于低配置设备,合理配置这些模块的运行参数至关重要。 2. 优化配置文件的性能设置 在config.ini文件中,有几个关键设置可以显著影响低配置设备的性能: