YouTube https://youtu.be/Orc-v8e4WmE
CRUD API Product and Seller
Seller | ||
id | name | address |
PK integer | varchar (100) | TEXT |
Product | |||||
id | seller_id | code_product | name | price | image_url |
PK integer | foreignID integer | char (32) | varchar (100) | integer | TEXT |
- Install dependencies using composer install
- Generate the key using php artisan key:generate
- Start your MySQL server
- Run migration and seeder using php artisan migrate:fresh --seed
- Install javascript depedencies using npm install
- Bundle javascript depedencies using npm run dev
- Start development server using php artisan serve
- Catatan
- Edit the env file if the db_username and db_password not the same
- Create a database like env file
end point http://127.0.0.1:8000/api/
- end point /register
- method POST
- body :
- email : qwerty@gmail.com
- name : Qwerty
- password : qwerty
- c_password : qwerty
- end point /login
- method POST
- body :
- email : qwerty@gmail.com
- password : qwerty
returns a token, use it on Header Authorization : Bearer :token
- end point /resource-seller
- method GET
Seller with Products (hasMany)
- end point /resource-seller/:id
- method GET
- end point /resource-seller
- method POST
- body :
- name : Seller1
- address : Jl. Qwerty No. 12
- end point /resource-seller/:id
- method PUT
- body :
- name : New Seller1
- address : New Jl. Qwerty No. 12
- end point /resource-seller/:id
- method DELETE
- end point /resource-product
- method GET
Product with Seller (belongsTo / hasOne / One2one)
- end point /resource-product/:id
- method GET
- end point /resource-product
- method POST
- body :
- name : Product1
- price : 2000000
- image_url : https://via.placeholder.com/320x240.png/006600?text=gadget+fuga
- seller_id : select one id seller
- end point /resource-product/:id
- method PUT
- body :
- name : new Product1
- price : 4000000
- image_url : https://via.placeholder.com/320x240.png/006600?text=gadget+fuga
- seller_id : select one id seller
- end point /resource-product/:id
- method DELETE
- end point /resource-product/search/:name
- method GET
- "laravel/sanctum": "^3.2",
- "laravel/ui": "^4.2",
- "@popperjs/core": "^2.11.6",
- "axios": "^1.1.2",
- "bootstrap": "^5.2.3",
- "laravel-vite-plugin": "^0.7.2",
- "lodash": "^4.17.19",
- "postcss": "^8.1.14",
- "sass": "^1.56.1",
- "vite": "^4.0.0"