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
usernamedanpassworddisediakan. - Memeriksa apakah pengguna dengan
usernameyang diberikan ada. - Memverifikasi
passwordmenggunakanbcrypt. - 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.