后端小伙伴们经常会遇到要写api接口,有时候又会遇到写需要符合规范的restful api,今天这篇文章就来说说它们之间的区别。
API 基本概念
API(应用程序编程接口)是一套预先定义的函数,协议和工具,用于构建软件应用程序。它允许不同的软件系统相互通信和交互。
RESTful API 基本概念
RESTful API 是一种基于HTTP协议的API,遵循REST架构风格,使用HTTP方法(GET、POST、PUT、DELETE等)来执行操作。
好的,让我们通过一个简单的示例来理解 API 和 RESTful API 的区别和用法。
API 示例:一个简单的数学计算器
假设我们有一个数学计算器 API,它提供两个功能:加法和乘法。
非RESTful API 示例(基于函数的API)
在非RESTful API中,我们可能会定义两个不同的端点(URL)来处理加法和乘法。
Python (Flask) 示例:
from flask import Flask, request, jsonify
app = Flask(__name__)
# 加法运算
@app.route('/add', methods=['POST'])
def add():
data = request.json
result = data['a'] + data['b']
return jsonify({'result': result})
# 乘法运算
@app.route('/multiply'、「methods=['POST'])
def multiply():
data = request.json
result = data['a'] * data['b']
return jsonify({'result': result})
if __name__ == '__main__':
app.run(debug=True)
调用示例:
- 加法:POST /add {"a": 1, "b": 2}
- 乘法:POST /multiply {"a": 3, "b": 4}
RESTful API 示例
在RESTful API中,我们会使用统一的资源标识符(URI)和HTTP方法来处理不同的操作。
Python (Flask) 示例:
from flask import Flask, request, jsonify
app = Flask(__name__)
# 计算资源
@app.route('/calculate', methods=['POST'])
def calculate():
data = request.json
operation = data['operation']
a = data['a']
b = data['b']
if operation == 'add':
result = a + b
elif operation == 'multiply':
result = a * b
else:
return jsonify({'error': 'Invalid operation'}), 400
return jsonify({'result': result})
if __name__ == '__main__':
app.run(debug=True)
调用示例:
- 加法:POST /calculate {"operation": "add", "a": 1, "b": 2}
- 乘法:POST /calculate {"operation": "multiply", "a": 3, "b": 4}
区别和总结
- 非RESTful API:每个操作一个端点,通常基于函数或方法。
- RESTful API:使用统一的资源标识符和HTTP方法来处理不同的操作,更符合REST架构风格。
。
1. RESTful API 设计规范
RESTful API 设计应遵循以下规范:
- 使用HTTP方法:GET(获取资源)、POST(创建新资源)、PUT(更新现有资源)、DELETE(删除资源)。
- 无状态:每个请求包含所有必要的信息,服务器不需要保存会话信息。
- 统一接口:每个资源都有一个唯一的URI,资源的状态可以通过HTTP方法来改变。
- 可缓存:数据应该被标记为可缓存或不可缓存,这样客户端就可以缓存数据以提高效率。
创作不易,如果这篇文章对你有用,欢迎点赞关注加评论哦。