- Create, Read, Update, Delete
- Filtering
- Pagination
https://github.com/agusabdulrahman/Go-Rest-API-ProductChange into the directory:
cd Go-Rest-API-ProductStart the server:
go run main.goBy default, the server listens on port 8080.
Endpoints
GET /products
Retrieves a list of products.
Response:
- page- the page number of the results to return (default: 1)
Start the server:
{
    "page": 1,
    "pageSize": 10,
    "total": 25,
    "products": [
        {
            "id": 1,
            "name": "Dell XPS 13",
            "description": "13-inch laptop",
            "price": 1500,
            "completed": false
        },
        ...
    ]
}
POST /products
Adds a new product.
Request Body:
{
    "name": "New Product",
    "description": "A new product",
    "price": 1000,
    "completed": false
}
Response:
{
    "id": 26,
    "name": "New Product",
    "description": "A new product",
    "price": 1000,
    "completed": false
}
GET /products/:id
Retrieves a single product by ID.
Response:
{
    "id": 1,
    "name": "Dell XPS 13",
    "description": "13-inch laptop",
    "price": 1500,
    "completed": false
}
PATCH /products/:id
Toggles the completion status of a product by ID.
Response:
{
    "id": 1,
    "name": "Dell XPS 13",
    "description": "13-inch laptop",
    "price": 1500,
    "completed": true
}
DELETE /products/20
Delete.
Response:
{
    "message": "product deleted"
}