- Python (使用Flask)58one.com
安装Flask
bash
pip install Flask
示例代码:app.py
python
from flask import Flask, jsonify, request
app = Flask(name)
假设的商品列表
products = [
{“id”: 1, “name”: “Apple”, “price”: 1.20},
{“id”: 2, “name”: “Banana”, “price”: 0.50},
]
@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((item for item in products if item[“id”] == product_id), None)
return jsonify(product) if product else jsonify({“error”: “Product not found”}), 404
if name == ‘main’:
app.run(debug=True)
2. JavaScript (使用Node.js和Express)
安装Node.js和Express
bash
npm init -y
npm install express
示例代码:app.js
javascript
const express = require(‘express’);
const app = express();
const port = 3000;
// 假设的商品列表
const products = [
{ id: 1, name: ‘Apple’, price: 1.20 },
{ 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(Example app listening at http://localhost:${port}
);
});
3. Java (使用Spring Boot)
创建一个Spring Boot项目(使用Spring Initializr或Maven/Gradle)
ProductController.java
java
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
@RestController
@RequestMapping(“/products”)
public class ProductController {
private static final List<Product> products = Arrays.asList(
new Product(1, "Apple", 1.20),
new Product(2, "Banana", 0.50)
);
@GetMapping
public List<Product> getAllProducts() {
return products;
}
@GetMapping("/{id}")
public Product getProductById(@PathVariable int id) {
return products.stream()
.filter(product -> product.getId() == id)
.findFirst()
.orElseThrow(() -> new RuntimeException("Product not found"));
}
// 假设的Product类
static class Product {
private int id;
private String name;
private double price;
// 构造函数、getter和setter省略
}
}
这些示例提供了构建购物商城后端的基本框架,包括获取商品列表和单个商品的接口。当然,一个完整的商城还需要更多的功能,如用户认证、购物车管理、订单处理等。每种语言都有其丰富的库和框架来支持这些功能。由于直接在这里编写一个完整的购物商城代码对于多种编程语言来说过于庞大,我将为你提供一个简化的概念性示例,涵盖几种流行的编程语言:Python(使用Flask框架)、JavaScript(使用Node.js和Express框架)、以及Java(使用Spring Boot)。
- Python (使用Flask)
安装Flask
bash
pip install Flask
示例代码:app.py
python
from flask import Flask, jsonify, request
app = Flask(name)
假设的商品列表
products = [
{“id”: 1, “name”: “Apple”, “price”: 1.20},
{“id”: 2, “name”: “Banana”, “price”: 0.50},
]
@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((item for item in products if item[“id”] == product_id), None)
return jsonify(product) if product else jsonify({“error”: “Product not found”}), 404
if name == ‘main’:
app.run(debug=True)
2. JavaScript (使用Node.js和Express)
安装Node.js和Express
bash
npm init -y
npm install express
示例代码:app.js
javascript
const express = require(‘express’);
const app = express();
const port = 3000;
// 假设的商品列表
const products = [
{ id: 1, name: ‘Apple’, price: 1.20 },
{ 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(Example app listening at http://localhost:${port}
);
});
3. Java (使用Spring Boot)
创建一个Spring Boot项目(使用Spring Initializr或Maven/Gradle)
ProductController.java
java
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
@RestController
@RequestMapping(“/products”)
public class ProductController {
private static final List<Product> products = Arrays.asList(
new Product(1, "Apple", 1.20),
new Product(2, "Banana", 0.50)
);
@GetMapping
public List<Product> getAllProducts() {
return products;
}
@GetMapping("/{id}")
public Product getProductById(@PathVariable int id) {
return products.stream()
.filter(product -> product.getId() == id)
.findFirst()
.orElseThrow(() -> new RuntimeException("Product not found"));
}
// 假设的Product类
static class Product {
private int id;
private String name;
private double price;
// 构造函数、getter和setter省略
}
}
这些示例提供了构建购物商城后端的基本框架,包括获取商品列表和单个商品的接口。当然,一个完整的商城还需要更多的功能,如用户认证、购物车管理、订单处理等。每种语言都有其丰富的库和框架来支持这些功能。avaScript)