An e-commerce API built following REST architectural standards using the Laravel Framework. This project includes features such as user authentication with JWT, OAuth2 authorization, role-based access control, and resource management.
This project is an e-commerce API designed to manage users, products, orders, and authentication. It is built with the Laravel framework, leveraging JWT for secure authentication and OAuth2 for authorization.
Check latest update version here: https://github.com/ptduy14/laravel-api-v2
- User authentication with JWT
- OAuth2 authorization
- Role-based access control
- Resource management (users, products, orders)
- RESTful API design
- Laravel Framework
- JWT-Auth
- PHP
- MySQL
- PHP >= 8.1
- Composer
- MySQL
- Laravel >= 10
- Register:
POST /api/auth/register
- Login:
POST /api/auth/login
- Logout:
POST /api/auth/logout
(requiresauth:jwt
middleware)
- Get All Users:
GET /api/users
(requiresrole:admin|super-admin
middleware) - Get User by ID:
GET /api/users/{id}
(requiresrole:admin|super-admin
middleware) - Create User:
POST /api/users
(requiresrole:admin|super-admin
middleware) - Update User:
PUT /api/users/{id}
(requiresauth:jwt
middleware) - Delete User:
DELETE /api/users/{id}
(requiresrole:super-admin
middleware) - Update User Role:
PUT /api/users/{id}/roles
(requiresrole:super-admin
middleware) - Get User Profile:
GET /api/users/profile
(requiresauth:jwt
middleware) - Get User Orders:
GET /api/users/{id}/orders
(requiresrole:user
middleware) - Get User Order by
ID: GET /api/users/{id}/orders/{id_order}
(requiresrole:user
middleware) - Create User Order:
POST /api/users/{id}/orders
(requiresrole:user
middleware) - Update User Order Status:
PUT /api/users/{id}/orders/{id_order}
(requiresrole:user
middleware) - Get User Cart:
GET /api/users/{id}/carts
- Add Product to Cart:
POST /api/users/{id}/carts/products/{id_product}
- Update Product in Cart:
PUT /api/users/{id}/carts/products/{id_product}
- Delete Product from Cart:
DELETE /api/users/{id}/carts/products/{id_product}
- Get All Categories:
GET /api/categories
- Get Category by ID:
GET /api/categories/{id}
- Create Category:
POST /api/categories
(requiresrole:admin|super-admin
middleware) - Update Category:
PUT /api/categories/{id}
(requiresrole:admin|super-admin
middleware) - Delete Category:
DELETE /api/categories/{id}
(requiresrole:admin|super-admin
middleware) - Get Products of Category:
GET /api/categories/{id}/products
- Get All Products:
GET /api/products
- Get Product by ID:
GET /api/products/{id}
- Create Product:
POST /api/products
(requiresrole:admin|super-admin
middleware) - Update Product:
PUT /api/products/{id}
(requiresrole:admin|super-admin
middleware) - Delete Product:
DELETE /api/products/{id}
(requiresrole:admin|super-admin
middleware) - Get Product Detail:
GET /api/products/{id}/details
- Create Product Detail:
POST /api/products/{id}/details
(requiresrole:admin|super-admin
middleware) - Update Product Detail:
PUT /api/products/{id}/details
(requiresrole:admin|super-admin
middleware) - Delete Product Detail:
DELETE /api/products/{id}/details
(requiresrole:admin|super-admin
middleware)
Middleware:
auth:api
: Use Passport for OAuth2 authentication..auth:jwt
:Use JWT for authentication.role
:Check the user's permissions, for examplerole:super-admin
,role:admin|super-admin
,role:user