Skip to content

Instantly share code, notes, and snippets.

@fdciabdul
Last active July 28, 2024 21:46
Show Gist options
  • Save fdciabdul/86dff58b5bca87d8dc8ebbb723a022df to your computer and use it in GitHub Desktop.
Save fdciabdul/86dff58b5bca87d8dc8ebbb723a022df to your computer and use it in GitHub Desktop.
Welcome file

Dokumentasi API

Pendahuluan

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).

Login

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 dan password disediakan.
  • Memeriksa apakah pengguna dengan username yang diberikan ada.
  • Memverifikasi password menggunakan bcrypt.
  • Menghasilkan token JWT jika autentikasi berhasil.

Validasi:

  • username: Harus berupa string.
  • password: Harus berupa string.

Stok Ayam

Mendapatkan Semua Stok Ayam

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.

Menambahkan Stok Ayam Baru

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.

Memperbarui Stok Ayam

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.

Menghapus Stok Ayam

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.

Pakan Stok

Mendapatkan Semua Pakan Stok

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.

Menambahkan Pakan Stok Baru

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.

Memperbarui Pakan Stok

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.

Menghapus Pakan Stok

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.

Kandang

Mendapatkan Semua Kandang

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.

Menambahkan Kandang Baru

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.

Memperbarui Kandang

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.

Menghapus Kandang

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment