2.7 KiB
2.7 KiB
Bookmark Check API Documentation
Overview
API endpoint untuk mengecek apakah suatu artikel sudah di-bookmark oleh user yang sedang login.
Endpoint
Check Bookmark by Article ID
GET /bookmarks/check/{articleId}
Description
Mengecek apakah artikel dengan ID tertentu sudah di-bookmark oleh user yang sedang login.
Parameters
- articleId (path, required): ID artikel yang akan dicek status bookmarknya
Headers
- Authorization (required): Bearer token untuk autentikasi user
Response
Success Response (200)
{
"success": true,
"messages": ["Successfully checked bookmark status"],
"data": {
"isBookmarked": true,
"articleId": 123,
"bookmarkId": 456
}
}
Response Fields
- isBookmarked (boolean): Status apakah artikel sudah di-bookmark atau belum
- articleId (integer): ID artikel yang dicek
- bookmarkId (integer, optional): ID bookmark jika artikel sudah di-bookmark
Error Responses
400 Bad Request
{
"success": false,
"messages": ["Invalid article ID"]
}
401 Unauthorized
{
"success": false,
"messages": ["user not found"]
}
500 Internal Server Error
{
"success": false,
"messages": ["article not found"]
}
Usage Examples
cURL Example
curl -X GET "http://localhost:8080/bookmarks/check/123" \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
JavaScript Example
const checkBookmark = async (articleId) => {
try {
const response = await fetch(`/bookmarks/check/${articleId}`, {
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
const data = await response.json();
if (data.success) {
console.log('Is bookmarked:', data.data.isBookmarked);
if (data.data.bookmarkId) {
console.log('Bookmark ID:', data.data.bookmarkId);
}
}
} catch (error) {
console.error('Error checking bookmark:', error);
}
};
Use Cases
- Frontend Bookmark Status: Mengecek status bookmark untuk menampilkan icon bookmark yang sesuai (filled/unfilled)
- Conditional UI: Menampilkan tombol "Remove Bookmark" atau "Add Bookmark" berdasarkan status
- Bookmark Counter: Menghitung jumlah bookmark yang dimiliki user
- Bookmark Management: Validasi sebelum melakukan operasi bookmark lainnya
Notes
- Endpoint ini menggunakan middleware
UserMiddlewareuntuk mengekstrak informasi user dari JWT token - Jika artikel tidak ditemukan, akan mengembalikan error 500
- Jika user tidak ditemukan dari token, akan mengembalikan error 401
- Field
bookmarkIdhanya akan ada jikaisBookmarkedbernilaitrue