一、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