Skip to content

erikrios/kotlin-restful-api

Repository files navigation

API Spec

Authentication

All API must use this authentication

Request :

  • Header
    • Api-Key : "your secret api key"

Create Product

Request :

  • Method : POST
  • Endpoint : /api/products
  • Header
    • Content-Type : applicatication/json
    • Accept: application/json
  • Body :
{
    "id": "string, unique",
    "name": "string",
    "price": "long",
    "quantity": "integer"
}

Response :

{
    "code": "number",
    "status": "string",
    "data": {
        "id": "string, unique",
        "name": "string",
        "price": "long",
        "quantity": "integer",
        "createdAt": "date",
        "updatedAt": "date"
    }
}

Get Product

Request :

  • Method : GET
  • Endpoint : /api/products/{id_product}
  • Header
    • Accept: application/json

Response :

{
    "code": "number",
    "status": "string",
    "data": {
        "id": "string, unique",
        "name": "string",
        "price": "long",
        "quantity": "integer",
        "createdAt": "date",
        "updatedAt": "date"
    }
}

Update Product

Request :

  • Method : PUT
  • Endpoint : /api/products/{id_product}
  • Header
    • Content-Type : applicatication/json
    • Accept: application/json
  • Body :
{
    "name": "string",
    "price": "long",
    "quantity": "integer"
}

Response :

{
    "code": "number",
    "status": "string",
    "data": {
        "id": "string, unique",
        "name": "string",
        "price": "long",
        "quantity": "integer",
        "createdAt": "date",
        "updatedAt": "date"
    }
}

List Product

Request :

  • Method : GET
  • Endpoint : /api/products
  • Header
    • Accept: application/json
  • Query Param :
    • size : number,
    • page : number

Response :

{
    "code": "number",
    "status": "string",
    "data": [
        {
            "id": "string, unique",
            "name": "string",
            "price": "long",
            "quantity": "integer",
            "createdAt": "date",
            "updatedAt": "date"
        },
        {
            "id": "string, unique",
            "name": "string",
            "price": "long",
            "quantity": "integer",
            "createdAt": "date",
            "updatedAt": "date"
        }
    ]
}

Delete Product

Request :

  • Method : DELETE
  • Endpoint : /api/products/{id_product}
  • Header
    • Accept: application/json

Response :

{
    "code": "number",
    "status": "string"
}