Tools: HTML, CSS, JAVASCRIPT, Vue JS
Tools: NodeJS, Express, sequelize, postgresql, Jest, Supertest
[POST] localhost:3000/users/register
Request header:
{
"Content-Type": "application/json"
}
Request body:
{
"email": "[email protected]",
"password": "123"
}
Response:
{
"id": 22,
"email": "[email protected]",
"password": "$2b$10$sY4m96dzMITm0rOUXkRLlupASqs2wYFvkslTcqsGiwtd.C4E94a9W",
"updatedAt": "2020-02-22T04:50:05.314Z",
"createdAt": "2020-02-22T04:50:05.314Z"
}
Response dengan email kosong:
{
"error": [
"email cannot be null."
]
}
Response jika terkena validasi:
{
"error": [
"email cannot be empty.",
"Password cannot be null"
]
}
[POST] localhost:3000/users/login
Request header:
{
"Content-Type": "application/json"
}
Request body:
{
"email": "[email protected]",
"password": "123"
}
Response:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Im9uZXNpbnVzQGdtYWlsLmNvbSIsImlhdCI6MTU4MjM0NzIxNn0.IUX3oKkorcQIps_TAmj_3rGckVWmgK4Cl43pMqMjUYg"
}
Response jika salah
{
"error": "wrong email or password""
}
[GET] localhost:3000/products
Response dengan atau tanpa token:
{
"error": "Un-authorized"
}
Request header:
{
"Content-Type": "application/json",
"accesstoken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImtvZGVraXRlQGdtYWlsLmNvbSIsImlhdCI6MTU4MjM0MjU4NH0.SRZmkzvhH1mPmLbZ5Aki8iIo3JQ52l_GsTcU4ClFopc"
}
Request body:
{}
Response:
[
{
"id": 40,
"name": "Sepatu nike ardilla",
"image_url": 'http://www.image.url',
"price": 25000,
"stock": 25,
"updatedAt": "2020-02-22T07:00:42.528Z",
"createdAt": "2020-02-22T07:00:42.528Z"
}
];
[POST] localhost:3000/products
Request Body:
{
"name": "Sepatu nike ardilla",
"price": 25000,
"stock": 25,
"image_url": "http://www.image.url"
}
Response Body:
{
"product": {
"id": 41,
"name": "Sepatu nike ardilla",
"image_url": "http://www.image.url",
"price": 25000,
"stock": 25,
"updatedAt": "2020-02-22T07:00:42.528Z",
"createdAt": "2020-02-22T07:00:42.528Z"
}
}
[PUT] localhost:3000/products/1
Request Body:
{
"name": "epatu nike ardilla",
"price": 25000,
"stock": 25,
"image_url": "http://www.image.url"
}
Response Body:
{
"product": {
"id": 41,
"name": "Sepatu nike ardilla",
"image_url": "http://www.image.url",
"price": 25000,
"stock": 25,
"updatedAt": "2020-02-22T07:00:42.528Z",
"createdAt": "2020-02-22T07:00:42.528Z"
}
}
[DELETE] localhost:3000/products/1
Request Body:
{}
Response Body:
{
"product": {
"id": 41,
"name": "Sepatu nike ardilla",
"image_url": "http://www.image.url",
"price": 25000,
"stock": 25,
"updatedAt": "2020-02-22T07:00:42.528Z",
"createdAt": "2020-02-22T07:00:42.528Z"
}
}