807 字
4 分钟
api接口备忘

HTTP请求#

请求组成#


1. 起始行(Request Line)#

这是请求的第一行,格式固定为:方法 + 路径 + 协议版本。 示例:POST /api/links?id=5 HTTP/1.1 ?后面的是参数(Params)#

2. 请求头(Header)#

常见的请求头包括:

  • Host: 请求的目标域名。
  • User-Agent: 客户端(如浏览器)的标识信息。
  • Content-Type: (主要用于POST请求) 告诉服务器请求体的数据类型,如 application/json
  • Authorization: 用于身份验证的凭证,如Token。
  • Accept: 客户端能够接收的响应数据类型。
  • X-API-KEY: 也是密钥的约定习惯名称 当然你也可以自己给请求头里加任何东西

3. 请求体(Body)#

请求体支持很多种格式,不过大部分时候都是传json文本,需要上传文件的时候才用别的。

数据格式Content-Type(请求头中)Flask 接收方式特点
form-datamultipart/form-datarequest.form + request.files支持文件上传
x-www-form-urlencodedapplication/x-www-form-urlencodedrequest.form简单键值对
binaryapplication/octet-streamrequest.data原始二进制
raw (JSON)application/jsonrequest.get_json()结构化数据
raw (Text)text/plainrequest.data纯文本
MessagePackapplication/x-msgpackrequest.data + msgpack 解析高效二进制

请求类型#

HTTP协议理论上总共有7种请求方式:GET、POST、PUT、PATCH、DELETE、OPTIONS、HEAD。 比较常见的

动词请求头 (Headers)路径参数请求体 (Body)实战评价
GET✅ 必须有✅ 常用不建议有就像明信片,内容全写在封面上。
POST✅ 必须有✅ 可带(但少见)核心就像快递箱,东西全塞在箱子里。
PUT✅ 必须有✅ 常用(定位ID)核心就像换货单,指明换哪个,并给出新货。
DELETE✅ 必须有✅ 核心(定位ID)不建议有就像撤销指令,告诉服务器“把那条删了”。

api风格#

RESTful#

学院派http的api风格,GET用来查,POST用来增,DELETE用来删,PUT、PATCH用来改。 如你所见过度设计的典型,想要按照标准写api真是要吃一大坨。

自由派#

随心所欲,不要花里胡哨的,一大堆的条条框框。就工程上怎么方便怎么来,原本传个参要分成好几块分别取,麻烦爆了。 工程上就用两个类型GET、POST就行了,GET专门查,别的全用POST最万能兼容性还是最好的。 接口类型直接用路径区分而不是用不同的请求类型区分。

  • 127.0.0.1:5000/get (GET)
  • 127.0.0.1:5000/add (POST)
  • 127.0.0.1:5000/delete (POST)
  • 127.0.0.1:5000/update (POST)

GraphQL#

更极端化的,就全部只用POST请求,而且不用路径区分,全部使用同一个路径127.0.0.1:5000,连api本身也被写在了body的json里。 本质其实就是一个POST请求,你会发送过去一个json,里面包含了你需要的所有的东西,然后根据你给的json的需求,api会对应返回你要的json文件,使用这种api你就不需要关注api的路由,所有的请求全部一股脑的发到api的根目录。 你可以去api路径/graphql/大部分api都会有个这种交互式的api测试器,超级好用,就像在ide里用一样,他会自动联想这个类里面还有什么类,可以一直联想到最后变成常量!的时候。 非常灵活,根据你的需求灵活的写查询语句,要什么写什么

api接口备忘
https://blog.cannian.space/posts/2025-11-9-api/
作者
Cannian
发布于
2025-11-09
许可协议
CC BY-NC-SA 4.0