Tugas Membuat RESTful API dengan Express dan Prisma

RESTful API adalah salah satu cara untuk berkomunikasi antara aplikasi dengan menggunakan metode HTTP dan prinsip-prinsip tertentu yang menjadikan interaksi data lebih terstruktur dan efisien.

Thumbnail Tugas Membuat RESTful API dengan Express dan Prisma | Joki Tugas Coding, Joki Tugas Express, Joki Tugas Prisma

Berikut ini Source Code Tugas Membuat RESTful API dengan Express dan Prisma.

Persiapan Setup Project

- Install Node js
Unduh Node.js versi terbaru atau sesuai dengan spesifikasi laptop Anda di link berikut Node js. Ketik node -v, jika output versi nya muncul maka Node js berhasil terinstall.

Cek Versi Node JS | Joki Tugas JavaScript, Joki Tugas Coding

- Install Git 
Unduh Git di link berikut ini untuk Windows Git, ketik git -v, jika output versi nya muncul maka berhasil terinstall.


- Install xampp untuk import database
- Install aplikasi untuk test Rest API, rekomendasi Postman
- Kopi (opsional)
Setup Database
- Buat nama database, disini saya buat uas_pbp_juniar_endin_suganda, teman-teman silahkan sesuaikan sesuka hati.


- Setelah itu klik nama database yang baru dibuat
- Lalu import file sql yang ada di dalam repo, nama filenya uas_pbp_juniar_endin_suganda.sql 


- Kalau berhasil nanti muncul 2 table relasi ini, table users yang berisi data users dan table posts yang berisi data postingan tiap user.

Berhasil Import Database

Setup Backend API

- Clone project, salin code dibawah ini
git clone https://github.com/stacktugas/RESTful-api-express-prisma
- Buka folder nya pakai vscode
- Buka tab terminal di vscode
- Install packages
npm install
- Jalankan server
npm start

Dokumentasi API

Users

Endpoint 

http://localhost:3000/users/ 

Action

Get All Users

Method

GET

Res

[

    {

        "id": 4,

        "username": "juniar",

        "password": "password-sangat-rahasia",

        "name": "Juniar Ikhsan",

        "token": "a16c1e650b133924734f2f933c50a745c8cd752ba33e06299244b1185672abc5"

    },

    {

        "id": 5,

        "username": "endin",

        "password": "passwordsangatrahasia",

        "name": "Endin Syadudin",

        "token": "a72708c643c90517de1b533fe39dccf11fd3594f2bbbbfb24da80d63116ec4e4"

    },

    {

        "id": 6,

        "username": "suganda",

        "password": "passworddienkripsi",

        "name": "Suganda",

        "token": "868c8802fdaf7bbd0422a505c1edc3951fbf61af888031687a2222d9a22e1e6c"

    }

]


Endpoint 

http://localhost:3000/users/4 

Action

Get user by ID

Method

GET

Res

{

    "id": 4,

    "username": "juniar",

    "password": "password-sangat-rahasia",

    "name": "Juniar Ikhsan",

    "token": "a16c1e650b133924734f2f933c50a745c8cd752ba33e06299244b1185672abc5"

}

Endpoint 

http://localhost:3000/users/ 

Action

Create User

Method

POST

Req Body

{

    "username": "akhsan",

    "password": "passworddienkripsi",

    "name": "Akhsan",

    "token": "868c8802fdaf7bbd0422a505c1edc3951fbf61af888031687a2222d9a22e1e6c"

}

Res

{

    "id": 7,

    "username": "akhsan",

    "password": "passworddienkripsi",

    "name": "Akhsan",

    "token": "868c8802fdaf7bbd0422a505c1edc3951fbf61af888031687a2222d9a22e1e6c"

}


Endpoint 

http://localhost:3000/users/7 

Action

Update User

Method

PUT

Req Body

{

    "username": "akhsan_update",

    "password": "passworddienkripsi",

    "name": "Akhsan",

    "token": "868c8802fdaf7bbd0422a505c1edc3951fbf61af888031687a2222d9a22e1e6c"

}

Res

{

    "id": 7,

    "username": "akhsan_update",

    "password": "passworddienkripsi",

    "name": "Akhsan",

    "token": "868c8802fdaf7bbd0422a505c1edc3951fbf61af888031687a2222d9a22e1e6c"

}


Endpoint

http://localhost:3000/posts/2 

Action

Delete User

Method

DELETE

Res

"User deleted"

Postings

Endpoint 

http://localhost:3000/posts/ 

Action

Get All Posts

Method

GET

Res

[

    {

        "post_id": 1,

        "user_id": 7,

        "title": "Konten Pertama",

        "content": "isi konten pertama",

        "tags": "tag1, tag2, tag3, tag4",

        "created_at": "2024-02-03T17:24:25.000Z"

    }

]


Endpoint 

http://localhost:3000/posts/1 

Action

Get post by ID

Method

GET

Res

{

    "post_id": 1,

    "user_id": 7,

    "title": "Konten Pertama",

    "content": "isi konten pertama",

    "tags": "tag1, tag2, tag3, tag4",

    "created_at": "2024-02-03T17:24:25.000Z"

}


Endpoint 

http://localhost:3000/posts/ 

Action

Create Post

Method

POST

Req Body

{

    "user_id": 4,

    "title": "Konten Kedua",

    "content": "isi konten kedua",

    "tags": "tag1, tag2, tag3, tag4, tag5"

}

Res

{

    "post_id": 2,

    "user_id": 4,

    "title": "Konten Kedua",

    "content": "isi konten kedua",

    "tags": "tag1, tag2, tag3, tag4, tag5",

    "created_at": "2024-02-03T17:27:58.000Z"

}


Endpoint 

http://localhost:3000/posts/2 

Action

Update Post

Method

PUT

Req Body

{

    "user_id": 4,

    "title": "Konten Kedua Update Judul",

    "content": "isi konten kedua terupdate",

    "tags": "tag1, tag2, tag3, tag4, tag5"

}

Res

{

    "post_id": 2,

    "user_id": 4,

    "title": "Konten Kedua Update Judul",

    "content": "isi konten kedua terupdate",

    "tags": "tag1, tag2, tag3, tag4, tag5",

    "created_at": "2024-02-03T17:27:58.000Z"

}

Endpoint

http://localhost:3000/posts/2 

Action

Delete Post

Method

DELETE

Res

"Post deleted"