ecommerce company in Indonesia - 13+ years experiences - www.programmerzamannow.com - youtube.com/c/ProgrammerZamanNow Eko Kurniawan Khannedy ● Telegram : @khannedy ● Linkedin : https://www.linkedin.com/company/programmer-zaman-now/ ● Facebook : fb.com/ProgrammerZamanNow ● Instagram : instagram.com/programmerzamannow ● Youtube : youtube.com/c/ProgrammerZamanNow ● Telegram Channel : t.me/ProgrammerZamanNow ● Tiktok : https://tiktok.com/@programmerzamannow ● Email : [email protected] Sebelum Belajar ● Kelas JavaScript dari Programmer Zaman Now ● Kelas MySQL dari Programmer Zaman Now ● Kelas NodeJS dari Programmer Zaman Now ● Kelas TypeScript dari Programmer Zaman Now Requirement Requirement ● Pada kelas ini, kita akan coba membuat RESTful API untuk Contact Management, dimana RESTful API yang akan kita buat memiliki fitur sebagai berikut : ● User Management ● Contact Management ● Address Management User Management Requirement User Data ● Username ● Password ● Name User API ● Register User ● Login User ● Update User ● Get User ● Logout User Contact Management Requirement Contact Data ● First Name ● Last Name ● Email ● Phone Contact API ● Create Contact ● Update Contact ● Get Contact ● Search Contact ● Remove Contact Address Management Requirement Contact Address Data ● Street ● City ● Province ● Country ● Postal Code Address API ● Create Address ● Update Address ● Get Address ● List Address ● Remove Address Membuat Project Membuat Project ● Buat folder belajar-typescript-restful-api ● npm init Menambah Package Zod ● npm install zod Menambah Package ExpressJS ● npm install express ● npm install --save-dev @types/express ● https://www.npmjs.com/package/express Menambah Package Prisma ● npm install --save-dev prisma ● https://www.prisma.io/ Menambah Package Winston ● npm install winston ● https://www.npmjs.com/package/winston Menambah Package BCrypt ● npm install bcrypt ● npm install --save-dev @types/bcrypt ● https://www.npmjs.com/package/bcrypt Menambah Library Jest untuk Unit Test ● npm install --save-dev jest @types/jest ● https://www.npmjs.com/package/jest Menambah Library Babel ● npm install --save-dev babel-jest @babel/preset-env ● https://babeljs.io/setup#installation Setup TypeScript untuk Jest ● npm install --save-dev @babel/preset-typescript ● npm install --save-dev @jest/globals ● https://jestjs.io/docs/getting-started#using-typescript Menambah Library Supertest ● npm install --save-dev supertest @types/supertest ● https://www.npmjs.com/package/supertest Menambah TypeScript ● npm install --save-dev typescript ● https://www.npmjs.com/package/typescript Setup TypeScript Project ● npx tsc --init ● Semua konfigurasi akan dibuat di file tsconfig.json ● Ubah “module” menjadi “commonjs” ● Ubah "moduleResolution" menjadi "Node" ● Tambahkan include src/**/* ● Ubah outDir menjadi “./dist” User API Spec Contact API Spec Address API Spec Setup Database Setup Database ● Buatlah database belajar_typescript_restful_api Setup Prisma ● npx prisma init User Model Contact Model Address Model Setup Project Kode : Setup Prisma Kode : Setup Winston Kode : Setup Express Setup Prisma Log ● https://www.prisma.io/docs/concepts/components/prisma-client/working-with-prismaclient/logg ing Register User API Login User API Menambah Package UUID ● npm install uuid ● npm install --save-dev @types/uuid ● https://www.npmjs.com/package/uuid Get User API Update User API Logout User API Create Contact API Get Contact API Update Contact API Remove Contact API Search Contact API Create Address API Get Address API Update Address API Remove Address API List Address API Distribution File Manual Test Penutup