372 lines
9.7 KiB
HTTP
372 lines
9.7 KiB
HTTP
### Variabel Global
|
|
@baseUrl = https://cpone.aplikasi.web.id/one-api/website/price/
|
|
@adminApiKey = 7a9b8c7d6e5f4g3h2i1j0k9l8m7n6o5p4q3r2s1t0u9v8w7x6y5z4a3b2c1d0
|
|
@userApiKey = 7a9b8c7d6e5f4g3h2i1j0k9l8m7n6o5p4q3r2s1t0u9v8w7x6y5z4a3b2c1d0
|
|
|
|
### 1. GET Semua Data Cabang
|
|
GET {{baseUrl}}/get_branches
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 1. GET Semua Data Kategori
|
|
# Permission yang dibutuhkan: prices:read
|
|
GET {{baseUrl}}/get_category
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 2. GET Data Harga Single
|
|
# Permission yang dibutuhkan: prices:read
|
|
GET {{baseUrl}}/get_single_price?limit=20&page=1
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 2.1. GET Data Harga Single dengan Filter Kategori
|
|
# Permission yang dibutuhkan: prices:read
|
|
GET {{baseUrl}}/get_single_price?limit=20&page=1&category=A05
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 2.2. GET Data Harga Single dengan Filter Kategori dan Search
|
|
# Permission yang dibutuhkan: prices:read
|
|
GET {{baseUrl}}/get_single_price?limit=20&page=1&category=01&search=hema
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 3. GET Data Harga Packet
|
|
# Permission yang dibutuhkan: prices:read
|
|
GET {{baseUrl}}/get_packet_price?limit=20&page=1
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 4. POST Menambahkan Data Harga Baru
|
|
# Permission yang dibutuhkan: prices:write
|
|
POST {{baseUrl}}/prices
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Content-Type: application/json
|
|
Accept: application/json
|
|
|
|
{
|
|
"name": "Smartphone XYZ",
|
|
"price": 2500000,
|
|
"category": "elektronik"
|
|
}
|
|
|
|
### 5. PUT Memperbarui Data Harga
|
|
# Permission yang dibutuhkan: prices:write
|
|
PUT {{baseUrl}}/prices/1
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Content-Type: application/json
|
|
Accept: application/json
|
|
|
|
{
|
|
"name": "Smartphone XYZ Updated",
|
|
"price": 2750000,
|
|
"category": "elektronik"
|
|
}
|
|
|
|
### 6. PATCH Memperbarui Sebagian Data Harga
|
|
# Permission yang dibutuhkan: prices:write
|
|
PATCH {{baseUrl}}/prices/1
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Content-Type: application/json
|
|
Accept: application/json
|
|
|
|
{
|
|
"price": 2650000
|
|
}
|
|
|
|
### 7. DELETE Menghapus Data Harga
|
|
# Permission yang dibutuhkan: prices:delete
|
|
DELETE {{baseUrl}}/prices/1
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 8. Mencoba Akses dengan API Key Tidak Valid
|
|
GET {{baseUrl}}/prices
|
|
Authorization: Bearer invalid_api_key
|
|
Accept: application/json
|
|
|
|
### 9. Mencoba Akses Tanpa API Key
|
|
GET {{baseUrl}}/prices
|
|
Accept: application/json
|
|
|
|
### 10. Mencoba Akses dengan API Key yang Tidak Memiliki Permission
|
|
# API key ini diasumsikan tidak memiliki permission prices:delete
|
|
DELETE {{baseUrl}}/prices/1
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 11. Testing Rate Limit
|
|
# Mengirim beberapa request berturut-turut dengan cepat untuk menguji rate limiting
|
|
GET {{baseUrl}}/prices
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
###
|
|
GET {{baseUrl}}/prices
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
###
|
|
GET {{baseUrl}}/prices
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 12. Mencoba Mencari Data dengan Query Search
|
|
# Permission yang dibutuhkan: prices:read
|
|
GET {{baseUrl}}/prices?search=smartphone
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 13. Mencoba Sorting Data
|
|
# Permission yang dibutuhkan: prices:read
|
|
GET {{baseUrl}}/prices?sort=price&order=desc
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 14. Testing API Key dengan Permission Produk
|
|
# Permission yang dibutuhkan: products:read
|
|
GET {{baseUrl}}/products?limit=10&offset=0
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 15. Testing API Key dengan Permission Batch (Bulk)
|
|
# Permission yang dibutuhkan: prices:write
|
|
POST {{baseUrl}}/prices/batch
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Content-Type: application/json
|
|
Accept: application/json
|
|
|
|
{
|
|
"items": [
|
|
{
|
|
"name": "Produk 1",
|
|
"price": 100000,
|
|
"category": "elektronik"
|
|
},
|
|
{
|
|
"name": "Produk 2",
|
|
"price": 200000,
|
|
"category": "elektronik"
|
|
},
|
|
{
|
|
"name": "Produk 3",
|
|
"price": 300000,
|
|
"category": "elektronik"
|
|
}
|
|
]
|
|
}
|
|
|
|
### 16. Testing API Key dengan Filtering Lebih Kompleks
|
|
# Permission yang dibutuhkan: prices:read
|
|
GET {{baseUrl}}/prices?category=elektronik&min_price=100000&max_price=5000000&sort=price&order=asc
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 17. Testing Export Data
|
|
# Permission yang dibutuhkan: prices:export
|
|
GET {{baseUrl}}/prices/export?format=csv
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/octet-stream
|
|
|
|
### 18. Testing dengan Format XML (Jika API Mendukung)
|
|
# Permission yang dibutuhkan: prices:read
|
|
GET {{baseUrl}}/prices?limit=10&offset=0
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/xml
|
|
|
|
### 19. Testing API Key dengan Permission Batch (Bulk)
|
|
# Permission yang dibutuhkan: prices:write
|
|
POST {{baseUrl}}/prices/batch
|
|
Authorization: Bearer {{adminApiKey}}
|
|
|
|
### 1. Generate API Key Baru (Admin Permission)
|
|
# Permission yang dibutuhkan: api_keys:create
|
|
POST {{baseUrl}}/api-keys/generate
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Content-Type: application/json
|
|
Accept: application/json
|
|
|
|
{
|
|
"name": "API Key untuk Mobile App",
|
|
"user_id": 123,
|
|
"permissions": {
|
|
"prices": "read",
|
|
"products": "read",
|
|
"cart": "read,write",
|
|
"orders": "read,write"
|
|
},
|
|
"expires_in_days": 365,
|
|
"rate_limit": 100,
|
|
"description": "API Key untuk aplikasi mobile dengan akses terbatas"
|
|
}
|
|
|
|
### 2. Generate API Key dengan Full Access (Super Admin)
|
|
# Permission yang dibutuhkan: api_keys:create
|
|
POST {{baseUrl}}/api-keys/generate
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Content-Type: application/json
|
|
Accept: application/json
|
|
|
|
{
|
|
"name": "Full Access API Key",
|
|
"user_id": 1,
|
|
"permissions": {
|
|
"*": "*"
|
|
},
|
|
"expires_in_days": null,
|
|
"rate_limit": 1000,
|
|
"description": "API Key dengan akses penuh untuk administrator sistem"
|
|
}
|
|
|
|
### 3. Generate API Key dengan Permission Spesifik
|
|
# Permission yang dibutuhkan: api_keys:create
|
|
POST {{baseUrl}}/api-keys/generate
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Content-Type: application/json
|
|
Accept: application/json
|
|
|
|
{
|
|
"name": "Analytics API Key",
|
|
"user_id": 456,
|
|
"permissions": {
|
|
"prices": "read",
|
|
"products": "read",
|
|
"reports": "read",
|
|
"statistics": "read"
|
|
},
|
|
"expires_in_days": 180,
|
|
"rate_limit": 500,
|
|
"description": "API Key untuk keperluan analisis data"
|
|
}
|
|
|
|
### 4. Generate API Key untuk Partner External
|
|
# Permission yang dibutuhkan: api_keys:create
|
|
POST {{baseUrl}}/api-keys/generate
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Content-Type: application/json
|
|
Accept: application/json
|
|
|
|
{
|
|
"name": "Partner Integration API Key",
|
|
"user_id": 789,
|
|
"permissions": {
|
|
"prices": {
|
|
"actions": ["read"],
|
|
"conditions": {
|
|
"categories": [1, 2, 3],
|
|
"visibility": "public"
|
|
}
|
|
},
|
|
"products": {
|
|
"actions": ["read"],
|
|
"conditions": {
|
|
"visibility": "public"
|
|
}
|
|
},
|
|
"orders": {
|
|
"actions": ["read-limited", "create"],
|
|
"conditions": {
|
|
"partner_id": 789
|
|
}
|
|
}
|
|
},
|
|
"expires_in_days": 90,
|
|
"rate_limit": 200,
|
|
"description": "API Key untuk integrasi dengan partner dengan akses terbatas"
|
|
}
|
|
|
|
### 5. Dapatkan Daftar API Key yang Aktif (Admin Only)
|
|
# Permission yang dibutuhkan: api_keys:read
|
|
GET {{baseUrl}}/api-keys
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 6. Dapatkan Detail API Key Tertentu
|
|
# Permission yang dibutuhkan: api_keys:read
|
|
GET {{baseUrl}}/api-keys/123
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 7. Menonaktifkan API Key
|
|
# Permission yang dibutuhkan: api_keys:write
|
|
PUT {{baseUrl}}/api-keys/123/deactivate
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 8. Memperbarui Permission API Key
|
|
# Permission yang dibutuhkan: api_keys:write
|
|
PUT {{baseUrl}}/api-keys/123/permissions
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Content-Type: application/json
|
|
Accept: application/json
|
|
|
|
{
|
|
"permissions": {
|
|
"prices": "read,write",
|
|
"products": "read",
|
|
"orders": "read,write,delete"
|
|
}
|
|
}
|
|
|
|
### 9. Memperpanjang Masa Berlaku API Key
|
|
# Permission yang dibutuhkan: api_keys:write
|
|
PUT {{baseUrl}}/api-keys/123/extend
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Content-Type: application/json
|
|
Accept: application/json
|
|
|
|
{
|
|
"additional_days": 180
|
|
}
|
|
|
|
### 10. Menghapus API Key (Soft Delete)
|
|
# Permission yang dibutuhkan: api_keys:delete
|
|
DELETE {{baseUrl}}/api-keys/123
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 11. Mendapatkan API Key Milik User Tertentu
|
|
# Permission yang dibutuhkan: api_keys:read
|
|
GET {{baseUrl}}/api-keys/user/456
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|
|
### 12. Mendapatkan API Key Milik User Saat Ini
|
|
# User dapat melihat API key miliknya sendiri
|
|
GET {{baseUrl}}/api-keys/me
|
|
Authorization: Bearer {{userApiKey}}
|
|
Accept: application/json
|
|
|
|
### 13. Membuat API Key untuk Self (User Membuat untuk Dirinya Sendiri)
|
|
# Permission yang diperlukan: api_keys:create-self
|
|
POST {{baseUrl}}/api-keys/generate-self
|
|
Authorization: Bearer {{userApiKey}}
|
|
Content-Type: application/json
|
|
Accept: application/json
|
|
|
|
{
|
|
"name": "My Personal API Key",
|
|
"permissions": {
|
|
"prices": "read",
|
|
"products": "read",
|
|
"cart": "read,write",
|
|
"orders": "read,write"
|
|
},
|
|
"expires_in_days": 365,
|
|
"description": "API Key untuk penggunaan pribadi"
|
|
}
|
|
|
|
### 14. Validasi API Key
|
|
# Endpoint untuk mengecek apakah API key valid dan mengambil informasi permission
|
|
GET {{baseUrl}}/api-keys/validate
|
|
Authorization: Bearer {{userApiKey}}
|
|
Accept: application/json
|
|
|
|
### 15. Dapatkan Statistik Penggunaan API Key
|
|
# Permission yang dibutuhkan: api_keys:read, statistics:read
|
|
GET {{baseUrl}}/api-keys/123/usage
|
|
Authorization: Bearer {{adminApiKey}}
|
|
Accept: application/json
|
|
|