Dokumentasi ini menjelaskan berbagai endpoint API yang digunakan dalam aplikasi, beserta logika dan validasi yang terlibat. Semua endpoint memerlukan autentikasi dengan JSON Web Token (JWT).
Endpoint: POST /login
Deskripsi: Endpoint ini digunakan untuk login pengguna dan mendapatkan token JWT.
Request Body:
{
"username": "yourUsername",
"password": "yourPassword"
}
Response:
{
"token": "yourJWTToken"
}
- Memverifikasi bahwa
username
danpassword
disediakan. - Memeriksa apakah pengguna dengan
username
yang diberikan ada. - Memverifikasi
password
menggunakanbcrypt
. - Menghasilkan token JWT jika autentikasi berhasil.
Validasi:
username
: Harus berupa string.password
: Harus berupa string.
Endpoint: GET /stokAyam
Deskripsi: Mengambil semua data stok ayam.
Header:
- Authorization:
yourJWTToken
Response:
[
{
"id": 1,
"jumlah_masuk": 100,
"jumlah_cacat": 5,
"jumlah_tidak_panen": 3,
"kandangId": 1,
"userId": 1
},
...
]
- Memverifikasi token JWT.
- Mengambil semua data stok ayam dari database.
Endpoint: POST /stokAyam
Deskripsi: Menambahkan data stok ayam baru.
Header:
- Authorization:
yourJWTToken
Request Body:
{
"jumlah_masuk": 100,
"jumlah_cacat": 5,
"jumlah_tidak_panen": 3,
"kandangId": 1,
"userId": 1
}
Response:
{
"id": 1,
"jumlah_masuk": 100,
"jumlah_cacat": 5,
"jumlah_tidak_panen": 3,
"kandangId": 1,
"userId": 1
}
- Memverifikasi token JWT.
- Memverifikasi data input.
- Menambahkan data stok ayam baru ke database.
Validasi:
jumlah_masuk
: Harus berupa integer dan lebih dari 0.jumlah_cacat
: Harus berupa integer dan minimal 0.jumlah_tidak_panen
: Harus berupa integer dan minimal 0.kandangId
: Harus berupa integer.userId
: Harus berupa integer.
Endpoint: PUT /stokAyam/:id
Deskripsi: Memperbarui data stok ayam yang sudah ada.
Header:
- Authorization:
yourJWTToken
Request Body:
{
"jumlah_masuk": 120,
"jumlah_cacat": 7,
"jumlah_tidak_panen": 4
}
Response:
{
"jumlah_masuk": 120,
"jumlah_cacat": 7,
"jumlah_tidak_panen": 4,
"kandangId": 1,
"userId": 1
}
- Memverifikasi token JWT.
- Memverifikasi data input.
- Memperbarui data stok ayam di database berdasarkan ID.
Validasi:
jumlah_masuk
: Opsional, harus berupa integer dan lebih dari 0.jumlah_cacat
: Opsional, harus berupa integer dan minimal 0.jumlah_tidak_panen
: Opsional, harus berupa integer dan minimal 0.kandangId
: Opsional, harus berupa integer.userId
: Opsional, harus berupa integer.
Endpoint: DELETE /stokAyam/:id
Deskripsi: Menghapus data stok ayam berdasarkan ID.
Header:
- Authorization:
yourJWTToken
Response:
{
"message": "Stok Ayam deleted"
}
- Memverifikasi token JWT.
- Menghapus data stok ayam dari database berdasarkan ID.
Endpoint: GET /pakanStok
Deskripsi: Mengambil semua data pakan stok.
Header:
- Authorization:
yourJWTToken
Response:
[
{
"id": 1,
"jumlah_karung": 20,
"jumlah_kilogram": 500,
"kandangId": 1,
"userId": 1
},
...
]
- Memverifikasi token JWT.
- Mengambil semua data pakan stok dari database.
Endpoint: POST /pakanStok
Deskripsi: Menambahkan data pakan stok baru.
Header:
- Authorization:
yourJWTToken
Request Body:
{
"jumlah_karung": 20,
"jumlah_kilogram": 500,
"kandangId": 1,
"userId": 1
}
Response:
{
"id": 1,
"jumlah_karung": 20,
"jumlah_kilogram": 500,
"kandangId": 1,
"userId": 1
}
- Memverifikasi token JWT.
- Memverifikasi data input.
- Menambahkan data pakan stok baru ke database.
Validasi:
jumlah_karung
: Harus berupa integer dan lebih dari 0.jumlah_kilogram
: Harus berupa float dan lebih dari 0.kandangId
: Harus berupa integer.userId
: Harus berupa integer.
Endpoint: PUT /pakanStok/:id
Deskripsi: Memperbarui data pakan stok yang sudah ada.
Header:
- Authorization:
yourJWTToken
Request Body:
{
"jumlah_karung": 25,
}
Response:
{
"jumlah_karung": 25,
"jumlah_kilogram": 600, // otomatis
"kandangId": 1,
"userId": 1
}
- Memverifikasi token JWT.
- Memverifikasi data input.
- Memperbarui data pakan stok di database berdasarkan ID.
Validasi:
jumlah_karung
: Opsional, harus berupa integer dan lebih dari 0.jumlah_kilogram
: Opsional, harus berupa float dan lebih dari 0.kandangId
: Opsional, harus berupa integer.userId
: Opsional, harus berupa integer.
Endpoint: DELETE /pakanStok/:id
Deskripsi: Menghapus data pakan stok berdasarkan ID.
Header:
- Authorization:
yourJWTToken
Response:
{
"message": "Pakan Stok deleted"
}
- Memverifikasi token JWT.
- Menghapus data pakan stok dari database berdasarkan ID.
Endpoint: GET /kandang
Deskripsi: Mengambil semua data kandang.
Header:
- Authorization:
yourJWTToken
Response:
[
{
"id": 1,
"nama": "Kandang A",
"lokasi": "Lokasi A"
},
...
]
- Memverifikasi token JWT.
- Mengambil semua data kandang dari database.
Endpoint: POST /kandang
Deskripsi: Menambahkan data kandang baru.
Header:
- Authorization:
yourJWTToken
Request Body:
{
"nama": "Kandang C",
"lokasi": "Lokasi C"
}
Response:
{
"id": 3,
"nama": "Kandang C",
"lokasi": "Lokasi C"
}
- Memverifikasi token JWT.
- Memverifikasi data input.
- Menambahkan data kandang baru ke database.
Validasi:
nama
: Harus berupa string.lokasi
: Harus berupa string.
Endpoint: PUT /kandang/:id
Deskripsi: Memperbarui data kandang yang sudah ada.
Header:
- Authorization:
yourJWTToken
Request Body:
{
"nama": "Updated Kandang A
",
"lokasi": "Updated Lokasi A"
}
Response:
{
"id": 1,
"nama": "Updated Kandang A",
"lokasi": "Updated Lokasi A"
}
- Memverifikasi token JWT.
- Memverifikasi data input.
- Memperbarui data kandang di database berdasarkan ID.
Validasi:
nama
: Opsional, harus berupa string.lokasi
: Opsional, harus berupa string.
Endpoint: DELETE /kandang/:id
Deskripsi: Menghapus data kandang berdasarkan ID.
Header:
- Authorization:
yourJWTToken
Response:
{
"message": "Kandang deleted"
}
- Memverifikasi token JWT.
- Menghapus data kandang dari database berdasarkan ID.
Dengan dokumentasi ini, Anda dapat menguji semua endpoint API menggunakan Postman atau alat lainnya dengan memasukkan token JWT di header Authorization
. Pastikan token yang digunakan valid dan dihasilkan dari endpoint /login
.