Spring Bootを使ってショッピングカートを実装するための基本的なサンプルコードを紹介します。このシンプルな例では、商品をカートに追加、カートの表示、商品の削除などの基本機能を提供します。
広告
1. プロジェクトのセットアップ
Spring Initializrを使用して、必要な依存性を含むSpring Bootプロジェクトを作成します。以下の依存性が必要です:
- Spring Web
- Spring Data JPA
- H2 Database (開発用のインメモリデータベース)
2. ドメインモデル
商品(Product)とショッピングカート(Cart)のエンティティを定義します。
Product.java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private double price;
// コンストラクタ、ゲッター、セッターを省略
}
Cart.java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import java.util.ArrayList;
import java.util.List;
@Entity
public class Cart {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany
private List<Product> products = new ArrayList<>();
// コンストラクタ、ゲッター、セッターを省略
public void addProduct(Product product) {
products.add(product);
}
public void removeProduct(Product product) {
products.remove(product);
}
}
3. リポジトリ
Spring Data JPAリポジトリを使用して、データベース操作を抽象化します。
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProductRepository extends JpaRepository<Product, Long> {
}
public interface CartRepository extends JpaRepository<Cart, Long> {
}
4. コントローラ
ショッピングカートの操作を行うRESTコントローラを作成します。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/cart")
public class CartController {
@Autowired
private CartRepository cartRepository;
@Autowired
private ProductRepository productRepository;
@PostMapping("/add")
public Cart addToCart(@RequestParam Long productId) {
Product product = productRepository.findById(productId).orElseThrow();
Cart cart = cartRepository.findAll().stream().findFirst().orElse(new Cart());
cart.addProduct(product);
return cartRepository.save(cart);
}
@GetMapping
public Cart getCart() {
return cartRepository.findAll().stream().findFirst().orElse(new Cart());
}
@PostMapping("/remove")
public Cart removeFromCart(@RequestParam Long productId) {
Product product = productRepository.findById(productId).orElseThrow();
Cart cart = cartRepository.findAll().stream().findFirst().orElse(new Cart());
cart.removeProduct(product);
return cartRepository.save(cart);
}
}
5. アプリケーションの実行
このシンプルなショッピングカートアプリケーションを実行するには、IDEまたはコマンドラインからSpring Bootアプリケーションを起動します。ブラウザまたはPostmanを使用してエンドポイントにアクセスし、商品の追加や削除、カートの内容の表示をテストします。
このサンプルは基本的な構造を提供しており、実際の商用プロジェクトではセキュリティ、エラーハンドリング、複雑なビジネスロジックなどの追加機能が必要になるかもしれません。
広告
コメント