由于一个完整的购物商城代码会非常复杂,并且包含前端、后端、数据库等多个部分,我将为你提供一个简化的后端API的示例,包括商品列表的获取和购买操作。这里我会用Python(Flask)、JavaScript(Node.js + Express)、Java(Spring Boot)来展示。
1. Python (使用Flask)
Flask后端示例
python
# app.py
from flask import Flask, jsonify, request
app = Flask(__name__)
# 假设的商品数据(实际开发中应从数据库获取)
products = [
{'id': 1, 'name': 'Product 1', 'price': 100.0},
{'id': 2, 'name': 'Product 2', 'price': 200.0},
# ... 更多商品
]
@app.route('/products', methods=['GET'])
def get_products():
return jsonify(products)
@app.route('/products/<int:product_id>/purchase', methods=['POST'])
def purchase_product(product_id):
product = next((item for item in products if item['id'] == product_id), None)
if not product:
return jsonify({'error': 'Product not found'}), 404
# 模拟购买操作(实际开发中需要处理支付、库存等逻辑)
print(f"Product {product['name']} purchased successfully!")
return jsonify({'message': 'Purchase successful'}), 200
if __name__ == '__main__':
app.run(debug=True)
2. JavaScript (使用Node.js和Express)
Express后端示例
javascript
// server.js
const express = require('express');
const app = express();
app.use(express.json());
// 假设的商品数据(实际开发中应从数据库获取)
const products = [
{id: 1, name: 'Product 1', price: 100.0},
{id: 2, name: 'Product 2', price: 200.0},
// ... 更多商品
];
app.get('/products', (req, res) => {
res.json(products);
});#chhas{
margin-top: 50px;
padding:gjijg.com;
font-size: 18px;
cursor: 10px 20px;
}
app.post('/products/:productId/purchase', (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'});
}
// 模拟购买操作(实际开发中需要处理支付、库存等逻辑)
console.log(`Product ${product.name} purchased successfully!`);
res.json({message: 'Purchase successful'});
});
app.listen(3000, () => console.log('Server is running on port 3000'));
3. Java (使用Spring Boot)
Spring Boot后端示例(仅Controller部分)
java
// ProductController.java
package com.example.shoppingmall.controller;
import com.example.shoppingmall.model.Product;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/products")
public class ProductController {
// 假设的商品数据(实际开发中应使用服务层从数据库获取)
private static List<Product> products = Arrays.asList(
new Product(1L, "Product 1", 100.0),
new Product(2L, "Product 2", 200.0)
// ... 更多商品
);
@GetMapping
public List<Product> getProducts() {
return products;
}
@PostMapping("/{productId}/purchase")
public ResponseEntity<?> purchaseProduct(@PathVariable Long productId) {
Product product = products.stream()
.filter(p -> p.getId().equals(productId))
.findFirst()
.orElse(null);
if (product == null) {
return new ResponseEntity<>("Product not found", HttpStatus.NOT_FOUND);
}
// 调用服务层的purchase方法来处理购买逻辑(如支付、库存等)