GET

/api/quotes

Mengambil daftar quotes dengan fitur pagination, filtering, dan sorting.

URL

GET /api/quotes

Query Parameters

ParameterTypeDefaultDescription
pageinteger1Nomor halaman (min: 1)
limitinteger5Jumlah items per halaman (min: 1, max: 100)
categorystring-Filter berdasarkan kategori
authorstring-Filter berdasarkan penulis
searchstring-Pencarian di text, author, dan category
sortBystringidField untuk sorting: id, text, author, category
sortOrderstringascUrutan sorting: asc atau desc

Example Requests

Basic Request

GET /api/quotes

Mengambil 5 quotes pertama

Pagination

GET /api/quotes?page=2&limit=10

Mengambil halaman 2 dengan 10 items per halaman

Filtering

GET /api/quotes?category=motivasi&author=Einstein

Filter quotes kategori motivasi dari Einstein

Search & Sort

GET /api/quotes?search=hidup&sortBy=author&sortOrder=desc

Cari quotes dengan kata “hidup”, sort by author Z-A

Success Response

200 OK
{
  "status": "SUCCESS",
  "message": "Quotes berhasil diambil",
  "data": [
    {
      "id": 1,
      "text": "Hidup itu seperti sepeda. Agar tetap seimbang, kamu harus terus bergerak.",
      "author": "Albert Einstein",
      "category": "motivasi"
    },
    {
      "id": 2,
      "text": "Jangan menunggu kesempatan, tapi ciptakanlah kesempatan itu.",
      "author": "George Bernard Shaw",
      "category": "motivasi"
    }
  ],
  "metadata": {
    "pagination": {
      "currentPage": 1,
      "totalPages": 2,
      "totalItems": 10,
      "itemsPerPage": 5,
      "hasNextPage": true,
      "hasPrevPage": false
    },
    "filters": {
      "category": "motivasi",
      "author": null,
      "search": null
    },
    "sorting": {
      "sortBy": "id",
      "sortOrder": "asc"
    }
  }
}

Error Responses

400 Bad Request
{
  "status": "ERROR",
  "message": "Page dan limit harus lebih besar dari 0"
}
429 Too Many Requests
{
  "status": "ERROR",
  "message": "Terlalu banyak permintaan. Coba lagi dalam beberapa saat."
}

Rate limit: 30 requests per minute

Response Headers

HeaderDescription
X-RateLimit-RemainingSisa requests yang diperbolehkan
X-RateLimit-ResetWaktu reset rate limit (ISO string)