The Library Management API provides endpoints to manage a collection of books and users. It allows you to create, retrieve, update, and delete books and users. The API uses JSON for data exchange and is built using Go, Gin, and GORM with SQLite as the database.
http://localhost:1111
Create a Book
URL: /books
Method: POST
Description: Creates a new book.
Request Body:
{
"title": "string",
"author": "string"
}
Response:
{
"id": "int",
"title": "string",
"author": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}
Example:
curl -X POST -H "Content-Type: application/json" -d "{\"title\":\"The Go Programming Language\", \"author\":\"Alan A. A. Donovan\"}" http://localhost:1111/books
Retrieve All Books
URL: /books
Method: GET
Description: Retrieves a list of all books.
Response:
[
{
"id": "int",
"title": "string",
"author": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}
]
Example:
curl http://localhost:1111/books
Retrieve a Specific Book
URL: /books/:id
Method: GET
Description: Retrieves a specific book.
Response:
[
{
"id": "int",
"title": "string",
"author": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}
]
Example:
curl http://localhost:1111/books/2
Update a Book
URL: /books/:id
Method: PUT
Description: Updates an existing book by ID.
Request Body:
{
"title": "string",
"author": "string"
}
Response:
{
"id": "int",
"title": "string",
"author": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}
Example:
curl -X PUT -H "Content-Type: application/json" -d "{\"title\":\"Updated Title\", \"author\":\"Updated Author\"}" http://localhost:1111/books/1
Delete a Book
URL: /books/:id
Method: DELETE
Description: Deletes an existing book by ID.
Response:
{
"message": "Book deleted successfully"
}
Example:
curl -X DELETE http://localhost:1111/books/1
Create a User
URL: /users
Method: POST
Description: Creates a new user.
Request Body:
{
"name": "string",
"email": "string",
"password": "string"
}
Response:
{
"id": "int",
"name": "string",
"email": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}
Example:
curl -X POST -H "Content-Type: application/json" -d "{\"name\":\"John Doe\", \"email\":\"john@example.com\", \"password\":\"password\"}" http://localhost:1111/users
Retrieve All Users
URL: /users
Method: GET
Description: Retrieves a list of all users.
Response:
[
{
"id": "int",
"name": "string",
"email": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}
]
Example:
curl http://localhost:1111/users
Retrieve a Specific User
URL: /users/:id
Method: GET
Description: Retrieves a specific user.
Response:
[
{
"id": "int",
"name": "string",
"email": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}
]
Example:
curl http://localhost:1111/users/1
Update a User
URL: /users/:id
Method: PUT
Description: Updates an existing user by ID.
Request Body:
{
"name": "string",
"email": "string"
}
Response:
{
"id": "int",
"name": "string",
"email": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}
Example:
curl -X PUT -H "Content-Type: application/json" -d "{\"name\":\"Updated Name\", \"email\":\"updated@example.com\"}" http://localhost:1111/users/1
Delete a User
URL: /users/:id
Method: DELETE
Description: Deletes an existing user by ID.
Response:
{
"message": "User deleted successfully"
}
Example:
curl -X DELETE http://localhost:1111/users/1
All endpoints will return appropriate HTTP status codes and error messages in case of failures. Here are some common error responses:
int
string
string
timestamp
timestamp
int
string
string
string
(hashed)timestamp
timestamp
curl -X POST -H "Content-Type: application/json" -d "{\"title\":\"The Go Programming Language\", \"author\":\"Alan A. A. Donovan\"}" http://localhost:1111/books
curl http://localhost:1111/books
curl http://localhost:1111/books/1
curl -X PUT -H "Content-Type: application/json" -d "{\"title\":\"Updated Title\", \"author\":\"Updated Author\"}" http://localhost:1111/books/1
curl -X DELETE http://localhost:1111/books/1
curl -X POST -H "Content-Type: application/json" -d "{\"name\":\"John Doe\", \"email\":\"john@example.com\", \"password\":\"password\"}" http://localhost:1111/users
curl http://localhost:1111/users
curl http://localhost:1111/users/1
curl -X PUT -H "Content-Type: application/json" -d "{\"name\":\"Updated Name\", \"email\":\"updated@example.com\"}" http://localhost:1111/users/1
curl -X DELETE http://localhost:1111/users/1