- Python 使用 Flask
Flask App 基本结构 (app.py)hy029.cn
python
from flask import Flask, request, jsonify
app = Flask(name)
模拟数据库中的商品
products = [
{“id”: 1, “name”: “Apple”, “price”: 1.00},
{“id”: 2, “name”: “Banana”, “price”: 0.50},
# 更多商品…
]
@app.route(‘/products’, methods=[‘GET’])
def get_products():
return jsonify(products), 200
@app.route(‘/products/int:product_id’, methods=[‘GET’])
def get_product(product_id):
product = next((item for item in products if item[“id”] == product_id), None)
if product:
return jsonify(product), 200
else:
return jsonify({“error”: “Product not found”}), 404
if name == ‘main’:
app.run(debug=True)
2. JavaScript 使用 Node.js 和 Express
Express App 基本结构 (app.js)
javascript
const express = require(‘express’);
const app = express();
const port = 3000;
// 模拟数据库中的商品
let products = [
{id: 1, name: “Apple”, price: 1.00},
{id: 2, name: “Banana”, price: 0.50},
// 更多商品…
];
app.get(‘/products’, (req, res) => {
res.json(products);
});
app.get(‘/products/:product_id’, (req, res) => {
const product = products.find(p => p.id === parseInt(req.params.product_id));
if (product) {
res.json(product);
} else {
res.status(404).json({error: ‘Product not found’});
}
});
app.listen(port, () => {
console.log(Server running on port ${port}
);
});
3. Java 使用 Spring Boot
Spring Boot 控制器示例 (ProductController.java)
java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
@RestController
public class ProductController {
private static final List<Product> products = Arrays.asList(
new Product(1, "Apple", 1.00),
new Product(2, "Banana", 0.50),
// 更多商品...
);
@GetMapping("/products")
public List<Product> getProducts() {
return products;
}
@GetMapping("/products/{productId}")
public Product getProductById(@PathVariable("productId") int productId) {
return products.stream()
.filter(p -> p.getId() == productId)
.findFirst()
.orElseThrow(() -> new RuntimeException("Product not found"));
}
// 假设的 Product 类
static class Product {
private int id;
private String name;
private double price;
// 构造函数、getter 和 setter 省略
}
}
请注意,这些示例只是构建购物商城后端服务的基础。在真实的应用中,你还需要考虑用户认证、支付处理、库存管理、数据持久化(如使用数据库)、更复杂的路由和API设计、错误处理、安全性(如防止SQL注入、XSS攻击等)等多个方面。由于直接在回答中编写完整的购物商城代码对于多种编程语言来说篇幅过长且复杂,我将为你提供一个简化的概念框架和示例代码片段,这些代码片段将覆盖几种流行的编程语言,包括 Python (使用 Flask 框架构建后端)、JavaScript (使用 Node.js 和 Express 框架构建后端) 和 Java (使用 Spring Boot 框架)。
- Python 使用 Flask
Flask App 基本结构 (app.py)
python
from flask import Flask, request, jsonify
app = Flask(name)
模拟数据库中的商品
products = [
{“id”: 1, “name”: “Apple”, “price”: 1.00},
{“id”: 2, “name”: “Banana”, “price”: 0.50},
# 更多商品…
]
@app.route(‘/products’, methods=[‘GET’])
def get_products():
return jsonify(products), 200
@app.route(‘/products/int:product_id’, methods=[‘GET’])
def get_product(product_id):
product = next((item for item in products if item[“id”] == product_id), None)
if product:
return jsonify(product), 200
else:
return jsonify({“error”: “Product not found”}), 404
if name == ‘main’:
app.run(debug=True)
2. JavaScript 使用 Node.js 和 Express
Express App 基本结构 (app.js)
javascript
const express = require(‘express’);
const app = express();
const port = 3000;
// 模拟数据库中的商品
let products = [
{id: 1, name: “Apple”, price: 1.00},
{id: 2, name: “Banana”, price: 0.50},
// 更多商品…
];
app.get(‘/products’, (req, res) => {
res.json(products);
});
app.get(‘/products/:product_id’, (req, res) => {
const product = products.find(p => p.id === parseInt(req.params.product_id));
if (product) {
res.json(product);
} else {
res.status(404).json({error: ‘Product not found’});
}
});
app.listen(port, () => {
console.log(Server running on port ${port}
);
});
3. Java 使用 Spring Boot
Spring Boot 控制器示例 (ProductController.java)
java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
@RestController
public class ProductController {
private static final List<Product> products = Arrays.asList(
new Product(1, "Apple", 1.00),
new Product(2, "Banana", 0.50),
// 更多商品...
);
@GetMapping("/products")
public List<Product> getProducts() {
return products;
}
@GetMapping("/products/{productId}")
public Product getProductById(@PathVariable("productId") int productId) {
return products.stream()
.filter(p -> p.getId() == productId)
.findFirst()
.orElseThrow(() -> new RuntimeException("Product not found"));
}
// 假设的 Product 类
static class Product {
private int id;
private String name;
private double price;
// 构造函数、getter 和 setter 省略
}
}
请注意,这些示例只是构建购物商城后端服务的基础。在真实的应用中,你还需要考虑用户认证、支付处理、库存管理、数据持久化(如使用数据库)、更复杂的路由和API设计、错误处理、安全性(如防止SQL注入、XSS攻击等)等多个方面。