Post

Endpoint untuk mengelola data post. Semua endpoint bersifat publik dan tidak memerlukan autentikasi.


Response 200 — Berhasil
{
  "success": true,
  "message": "Data post ditemukan",
  "data": [
    {
      "id": 1,
      "title": "Judul Post",
      "body": "Isi konten post...",
      "author": "Nama Penulis",
      "slug": "judul-post",
      "status": "published",
      "created_at": "2024-01-01T00:00:00.000000Z",
      "updated_at": "2024-01-01T00:00:00.000000Z"
    }
  ]
}

Response 200 — Berhasil
{
  "success": true,
  "message": "Data post ditemukan",
  "data": {
    "id": 1,
    "title": "Judul Post",
    "body": "Isi konten post...",
    "author": "Nama Penulis",
    "slug": "judul-post",
    "status": "published",
    "created_at": "2024-01-01T00:00:00.000000Z",
    "updated_at": "2024-01-01T00:00:00.000000Z",
    "comments": [
      {
        "id": 1,
        "post_id": 1,
        "name": "Komentator",
        "email": "komentar@example.com",
        "body": "Isi komentar",
        "status": "approved",
        "created_at": "2024-01-01T00:00:00.000000Z",
        "updated_at": "2024-01-01T00:00:00.000000Z"
      }
    ]
  }
}
Response 404 — Post Tidak Ditemukan
{
  "success": false,
  "message": "Data tidak ditemukan",
  "errors": {}
}

Request Body
{
  "title": "Judul Post",
  "body": "Isi konten post...",
  "author": "Nama Penulis",
  "slug": "judul-post",
  "status": "published"
}
Response 201 — Berhasil Dibuat
{
  "success": true,
  "message": "Post berhasil dibuat",
  "data": {
    "id": 1,
    "title": "Judul Post",
    "body": "Isi konten post...",
    "author": "Nama Penulis",
    "slug": "judul-post",
    "status": "published",
    "created_at": "2024-01-01T00:00:00.000000Z",
    "updated_at": "2024-01-01T00:00:00.000000Z"
  }
}
Response 422 — Validasi Gagal
{
  "success": false,
  "message": "Data tidak valid",
  "errors": {
    "title": ["The title field is required."],
    "slug": ["The slug has already been taken."]
  }
}

Request Body
{
  "title": "Judul Post Diperbarui",
  "body": "Isi konten post yang diperbarui...",
  "author": "Nama Penulis",
  "slug": "judul-post-diperbarui",
  "status": "published"
}
Response 200 — Berhasil Diperbarui
{
  "success": true,
  "message": "Post berhasil diperbarui",
  "data": {
    "id": 1,
    "title": "Judul Post Diperbarui",
    "body": "Isi konten post yang diperbarui...",
    "author": "Nama Penulis",
    "slug": "judul-post-diperbarui",
    "status": "published",
    "created_at": "2024-01-01T00:00:00.000000Z",
    "updated_at": "2024-01-01T00:00:00.000000Z"
  }
}
Response 404 — Post Tidak Ditemukan
{
  "success": false,
  "message": "Data tidak ditemukan",
  "errors": {}
}

Menghapus post beserta semua comments terkait secara otomatis (cascade delete).

Response 200 — Berhasil Dihapus
{
  "success": true,
  "message": "Post berhasil dihapus",
  "data": {}
}
Response 404 — Post Tidak Ditemukan
{
  "success": false,
  "message": "Data tidak ditemukan",
  "errors": {}
}