RESTful API 是应用程序接口 (API) 的一种架构风格,它使用 HTTP 请求来访问和使用数据。该数据可用于 GET、PUT、POST 和 DELETE 数据类型,这些数据类型是指有关资源的操作的读取、更新、创建和删除。

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 简单来说就是:别人写好代码,编译号程序,可以让其他人调用使用,就称作API。你使用了别人代码(或者程序)中的某个函数、类、对象,就叫做使用了某个API。
但是随着互联网和移动设备的发展,人们对Web应用的使用需求也增加,传统的动态页面由于低效率而渐渐被HTML+JavaScript(Ajax)的前后端分离所取代,并且安卓、IOS、小程序等形式客户端层出不穷,客户端的种类出现多元化,而客户端和服务端就需要接口进行通信,但接口的规范性就又成了一个问题:

所以一套结构清晰、符合标准、易于理解、扩展方便让大部分人都能够理解接受的接口风格就显得越来越重要,而RESTful风格的接口(RESTful API)刚好有以上特点,就逐渐被实践应用而变得流行起来。

RESTful(Representational State Transfer,表述层状态传递)风格的API是基于HTTP协议的一种设计方法,广泛用于网络服务开发,尤其适用于构建大规模分布式系统。 REST全称是Resource Representational State Transfer,通俗来讲就是:资源在网络中以某种表现形式进行状态转移。网页是前端后端融在一起的,比如之前的PHP,JSP等。在之前的桌面时代问题不大,但是近年来移动互联网的发展,各种类型的Client层出不穷。
注意:RESTful是一种风格而不是标准。 满足这种设计风格的程序或接口我们称之为RESTful(从单词字面来看就是一个形容词)。所以RESTful API 就是满足REST架构风格的接口。另外对于广大平台来说,比如Facebook platform,微博开放平台,微信公共平台等,它们不需要有显式的前端,只需要一套提供服务的接口,于是RESTful更是它们最好的选择。随着大模型(如GPT、BERT等)在自然语言处理、机器学习等领域的广泛应用,RESTful API 也成为了大模型与外部系统交互的重要桥梁。
无状态性(Statelessness):每个请求都是独立的,服务器不存储客户端的上下文信息。客户端请求应当包含所有必要的元数据。
统一接口(Uniform Interface):使用RESTful风格的接口,从接口上可能只能定位其资源,但是无法知晓它具体进行了什么操作,需要具体了解其发生了什么操作动作要从其HTTP请求方法类型上进行判断。具体的HTTP方法和方法含义如下:
GET(SELECT):从服务器取出资源(一项或多项)。
DELETE(DELETE):从服务器删除资源。
客户端-服务器架构(Client-Server Architecture):客户端与服务器职责分离,客户端负责用户界面,服务器负责存储和处理。
从请求的流程来看,RESTful API和传统API大致架构如下:

RESTful API案例: 详情请见 https://restfulapi.cn/

在大模型(如 GPT-4、BERT 等)中,RESTful API 通常用于以下场景: