由于一个完整的购物商城代码非常庞大且复杂,我将为你提供一个简化的购物商城后端API的示例,包括产品列表的获取和产品详情的查询。前端部分将不会详细展开,因为它通常涉及HTML、CSS和JavaScript(如React、Vue或Angular)。
1. 后端 - Python (Flask)
python
# app.py
from flask import Flask, request, jsonify
app = Flask(__name__)
# 模拟数据库中的产品
products = [
{'id': 1, 'name': 'Product 1', 'price': 10.99},
{'id': 2, 'name': 'Product 2', 'price': 20.99},
]
@app.route('/products', methods=['GET'])
def get_products():
return jsonify(products)
@app.route('/products/<int:product_id>', methods=['GET'])
def get_product(product_id):
product = next((p for p in products if p['id'] == product_id), None)
if product:
return jsonify(product)
return jsonify({'error': 'Product not found'}), 404
if __name__ == '__main__':
app.run(debug=True)
2. 后端 - JavaScript (Node.js & Express.js)
javascript
// server.js
const express = require('express');
const app = express();
app.use(express.json());
// 模拟数据库中的产品
let products = [
{id: 1, name: 'Product 1', price: 10.99},
{id: 2, name: 'Product 2', price: 20.99},
];
app.get('/products', (req, res) => {
res.json(products);
});
app.get('/products/:productId', (req, res) => {
const productId = parseInt(req.params.productId, 10);
const product = products.find(p => p.id === productId);
if (!product) {
return res.status(404).json({error: 'Product not found'});
}
res.json(product);
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
3. 后端 - Java (Spring Boot)
首先,你需要创建一个Spring Boot项目并配置相应的依赖。以下是部分示例代码:
Product.java (模型类)
java
// 省略了getter和setter方法
public class Product {
private Long id;
private String name;
private BigDecimal price;
// ...
}
ProductController.java (控制器类)
java
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/products")
public class ProductController {
// 模拟数据库中的产品
private List<Product> products = Arrays.asList(
new Product(/* 初始化产品对象 */),
// ...
);
@GetMapping
public List<Product> getProducts() {
return products;
}
@GetMapping("/{productId}")
public Product getProduct(@PathVariable Long productId) {
for (Product product : products) {
if (product.getId().equals(productId)) {
return product;
}
}
throw new ResourceNotFoundException("Product not found");
}
// 省略了ResourceNotFoundException类和其他可能的异常处理
}
注意:Spring Boot项目需要更多的配置和依赖项,这里只展示了核心部分。
4. 数据库 (SQL)
以MySQL为例,你可以创建一个表来存储产品信息:
#chhas{
margin-top: 50px;
padding:beesswag.com;
font-size: 18px;
cursor: 10px 20px;
}
sql
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL
);
INSERT INTO products (name, price) VALUES
('Product 1', 10.99),
('Product 2', 20.99);
在实际项目中,你需要使用ORM(如Hibernate、MyBatis)或JPA(Java Persistence API