boxes-api/API_Ref.md

3.7 KiB

API Reference

Base URL

http://<your-server-address>:<port>

Authentication

All endpoints (except /login) require a valid JWT token in the Authorization header. The token is prefixed with Bearer .


Endpoints

1. Login

  • Endpoint: /login
  • Method: POST
  • Request Body:
    {
      "username": "string",
      "password": "string"
    }
    
  • Response:
    {
      "token": "string"
    }
    
  • Description: Authenticates a user and returns a JWT token.

2. Get Boxes

  • Endpoint: /boxes
  • Method: GET
  • Response:
    [
      {
        "id": "integer",
        "name": "string"
      },
      ...
    ]
    
  • Description: Retrieves all boxes.

3. Create Box

  • Endpoint: /boxes
  • Method: POST
  • Request Body:
    {
      "name": "string"
    }
    
  • Response:
    {
      "id": "integer",
      "name": "string"
    }
    
  • Description: Creates a new box and returns its ID.

4. Delete Box

  • Endpoint: /boxes/{id}
  • Method: DELETE
  • Description: Deletes a box by its ID.

5. Get Items

  • Endpoint: /items
  • Method: GET
  • Response:
    [
      {
        "id": "integer",
        "name": "string"
      },
      ...
    ]
    
  • Description: Retrieves all items.

6. Create Item

  • Endpoint: /items
  • Method: POST
  • Request Body:
    {
      "name": "string",
      "description": "string",
      "box_id": "integer"
    }
    
  • Response:
    {
      "id": "integer",
      "name": "string"
    }
    
  • Description: Creates a new item and returns its ID.

7. Get Item

  • Endpoint: /items/{id}
  • Method: GET
  • Response:
    {
      "id": "integer",
      "name": "string",
      "description": "string",
      "box_id": "integer"
    }
    
  • Description: Retrieves an item by its ID.

8. Update Item

  • Endpoint: /items/{id}
  • Method: PUT
  • Request Body:
    {
      "name": "string",
      "description": "string",
      "box_id": "integer"
    }
    
  • Response:
    {
      "id": "integer",
      "name": "string"
    }
    
  • Description: Updates an item by its ID.

9. Delete Item

  • Endpoint: /items/{id}
  • Method: DELETE
  • Description: Deletes an item by its ID.

10. Get Items in Box

  • Endpoint: /boxes/{id}/items
  • Method: GET
  • Response:
    [
      {
        "id": "integer",
        "name": "string"
      },
      ...
    ]
    
  • Description: Retrieves all items within a specified box.

11. Upload Item Image

  • Endpoint: /items/{id}/upload
  • Method: POST
  • Form Data:
    • File: image (the image file to upload)
  • Response:
    {
      "imagePath": "string"
    }
    
  • Description: Uploads an image for a specified item.

12. Get Item Image

  • Endpoint: /items/{id}/image
  • Method: GET
  • Response: Returns the image of the specified item.
  • Description: Retrieves the image for an item by its ID.

13. Search Items

  • Endpoint: /search/items
  • Method: GET
  • Query Parameters:
    • q: Search query string
  • Response:
    [
      {
        "id": "integer",
        "name": "string"
      },
      ...
    ]
    
  • Description: Searches for items based on a query string.

Middleware

  • AuthMiddleware: Validates the JWT token in the Authorization header and restricts access to protected endpoints.

Notes

  • Replace <your-server-address> and <port> with your actual server address and port.
  • Ensure that CORS settings allow your frontend to access the API.