/kotlin-restful-api

Kotlin RESTful API

Primary LanguageKotlin

API Spec

Authentication

All API must use this authentication

Request :

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

Create Product

Request :

  • Method : POST
  • Endpoint : /api/products
  • Header :
    • Content-Type: application/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: application/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"
}