一、RESTful風格介面文檔
REST是Representational State Transfer的縮寫,是一種軟體架構風格,設計用於分散式系統。RESTful是基於REST的架構風格下的Web服務,是目前最流行的Web服務之一。RESTful風格介面文檔用於描述RESTful介面的設計,通常包含介面URL、請求參數、返回參數、狀態碼等內容。
下面是一個基於Node.js的RESTful風格介面示例代碼:
const express = require('express')
const app = express()
app.get('/users', (req, res) => {
res.send('get users')
})
app.post('/users', (req, res) => {
res.send('create user')
})
app.put('/users/:id', (req, res) => {
res.send('update user ' + req.params.id)
})
app.delete('/users/:id', (req, res) => {
res.send('delete user ' + req.params.id)
})
app.listen(3000, () => console.log('Server started on port 3000'))
二、RESTful風格
RESTful風格是一種基於HTTP協議設計的Web服務架構風格,它的特點是採用HTTP協議提供的各類請求方式來實現對資源的操作,其中常用的方法有GET、POST、PUT、DELETE等。
下面是一些常見的RESTful風格要求:
1.服務端不保存客戶端狀態:沒有session和cookie的概念
2.資源通過URL訪問:資源的唯一標識符是URL,使用同樣的URL可以訪問同一資源的不同狀態;
3.HTTP請求方法使用恰當:GET用於獲取資源;POST用於新建資源;PUT用於更新資源;DELETE用於刪除資源;
4.伺服器返回客戶端的數據採用資源狀態傳輸(Representation State Transfer):即將資源的狀態信息以及表示(Representation)的形式一起返回給客戶端。
三、RESTful風格介面動詞
根據RESTful風格的規定,每個RESTful介面都應該支持以下四種HTTP狀態碼:
1.GET:用於獲取資源或資源列表;
2.POST:用於新建資源;
3.PUT:用於更新資源;
4.DELETE:刪除資源。
下面是一些常見的動詞:
1. GET /users:獲取用戶列表
2. GET /users/:id:通過ID獲取用戶信息
3. POST /users:新建用戶
4. PUT /users/:id:更新用戶信息
5. DELETE /users/:id:刪除用戶
四、RESTful風格介面案例
下面是一個基於Python Flask框架的RESTful風格介面示例代碼:
from flask import Flask, jsonify, request
app = Flask(__name__)
users = [
{
'id': 1,
'name': 'John',
'age': 30
},
{
'id': 2,
'name': 'Jane',
'age': 25
}
]
@app.route('/users', methods=['GET'])
def get_users():
return jsonify({'users': users})
@app.route('/users/', methods=['GET'])
def get_user(user_id):
for user in users:
if user['id'] == user_id:
return jsonify(user)
return jsonify({'error': 'user not found'})
@app.route('/users', methods=['POST'])
def create_user():
user = {
'id': len(users) + 1,
'name': request.json['name'],
'age': request.json['age']
}
users.append(user)
return jsonify(user)
@app.route('/users/', methods=['PUT'])
def update_user(user_id):
for user in users:
if user['id'] == user_id:
user['name'] = request.json['name']
user['age'] = request.json['age']
return jsonify(user)
return jsonify({'error': 'user not found'})
@app.route('/users/', methods=['DELETE'])
def delete_user(user_id):
for i in range(len(users)):
if users[i]['id'] == user_id:
del users[i]
return jsonify(users)
return jsonify({'error': 'user not found'})
if __name__ == '__main__':
app.run(debug=True)
五、RESTful風格介面示例
下面是一個基於Java Spring Boot框架的RESTful風格介面示例代碼:
@RestController
@RequestMapping("/users")
public class UserController {
private static List users = new ArrayList();
@GetMapping("/")
public ResponseEntity<List> getUsers() {
return ResponseEntity.ok(users);
}
@GetMapping("/{id}")
public ResponseEntity getUser(@PathVariable("id") Long id) {
Optional user = users.stream().filter(u -> u.getId().equals(id)).findFirst();
return ResponseEntity.of(user);
}
@PostMapping("/")
public ResponseEntity createUser(@RequestBody User user) {
user.setId((long) (users.size() + 1));
users.add(user);
return ResponseEntity.ok(user);
}
@PutMapping("/{id}")
public ResponseEntity updateUser(@PathVariable("id") Long id, @RequestBody User user) {
Optional currentUser = users.stream().filter(u -> u.getId().equals(id)).findFirst();
if (currentUser.isPresent()) {
User u = currentUser.get();
u.setName(user.getName());
u.setAge(user.getAge());
return ResponseEntity.ok(u);
} else {
return ResponseEntity.notFound().build();
}
}
@DeleteMapping("/{id}")
public ResponseEntity deleteUser(@PathVariable("id") Long id) {
Optional user = users.stream().filter(u -> u.getId().equals(id)).findFirst();
if (user.isPresent()) {
users.remove(user.get());
return ResponseEntity.ok().build();
} else {
return ResponseEntity.notFound().build();
}
}
}
六、RESTful風格介面舉例
以下是一些RESTful介面的示例:
1.獲取用戶列表(GET):/api/users
2.獲取指定id的用戶(GET):/api/users/{id}
3.創建新用戶(POST):/api/users
4.更新用戶信息(PUT):/api/users/{id}
5.刪除用戶(DELETE):/api/users/{id}
七、RESTful風格介面有哪些類型
常見的RESTful介面類型有以下幾種:
1.基礎資源類型:表現層由數據和超鏈接組成,每個基礎資源通過URL唯一標識。
2.集合類型:包含一組資源,每個資源可以通過URL唯一標識。
3.分頁類型:用於翻頁顯示,分頁信息以超鏈接的形式呈現。
4.創建或者更新資源的類型:響應中包含新資源的URL等信息。
八、RESTful風格介面增刪改查
RESTful風格介面支持增刪改查操作,即:
1.獲取資源:使用HTTP GET方法。
2.創建資源:使用HTTP POST方法。
3.更新資源:使用HTTP PUT方法。
4.刪除資源:使用HTTP DELETE方法。
九、RESTful API介面規範
在設計RESTful API介面時,需要遵循以下規範:
1.使用名詞描述資源,不要使用動詞;
2.使用複數形式表示多個資源的名稱;
3.儘可能地遵循HTTP協議規定的請求方法及其作用;
4.使用HTTP狀態碼明確請求的處理狀態;
5.請求參數和返回結果的格式都應該採用JSON格式;
6.按照RESTful規範,採用HATEOAS模式定義URL。
十、什麼是RESTful風格
RESTful是Representational State Transfer的縮寫,是一種基於HTTP/HTTPS協議設計的Web服務架構風格,常用於分散式、跨語言、各種設備上的數據交互。RESTful介面在實現上只需要遵循RESTful的規範,不依賴任何具體的開發技術,因此具有高度的靈活性和可擴展性。
最後,希望文章對RESTful風格介面的學習和理解有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/192896.html
微信掃一掃
支付寶掃一掃