Project Angular ต่อกับ Database : API

Tawan_Ait
4 min readJan 15, 2020

--

เมื่อเรามี Database อยู่แล้วลูกหนึ่ง ที่ได้จากการ Stubby ทีนี้เราต้องการที่จะเอา Database ของเราออกสู่ชาวโลก ให้ออกมาอยู่หน้าบ้าน เฉพาะบางส่วน เราต้องทำ API เพื่อติดต่อกันได้ระหว่าง Project กับ Database

API : Application Programming Interface คือ ช่องทางในการติดต่อ ระหว่าง Application กับ User

ต่อการทำ Stubby ครั้งที่แล้ว

เริ่มต้นเราจะ Create Project ขึ้นมาหนึ่ง Project ชื่อว่า r-books เพื่อที่จะไปต่อกับ Database ให้มาแสดงที่หน้าบ้าน หรือว่า FrontEnd

มาเริ่มกัน เปิด Terminal ขึ้นมา แล้วกรอกคำสั่งว่า

ls เพื่อดูเราอยู่ตรงไหน
cd projectName เข้าไปใน Project

การ Create Project Angular

เราจะสร้าง Project ชื่อว่า r-books ด้วยคำสั่ง ที่โฟลเดอร์ angular

ng new r-books

จะคำถามว่า ต้องการ จะเพิ่ม Angular routing ไหม ให้ตอบ y

เลือกเป็นรูปแบบที่ใช้ในการตกแต่ง css ดังนี้ และรอให้สร้างให้เสร็จ จะขึ้นข้อความว่า success ด้านล่างนี้

ลอง ls ดูว่ามี Project ที่เราสร้างจริงไหม; และ cd เข้าไปใน Project และเปิดเข้าไปใน Project ได้เลย ดังนี้

เมื่อเข้าไปใน Project แล้ว ให้กด [command + J] เพื่อเปิด Termanal และรันคำสั่ง [ng serve]

เมื่อรันเสร็จให้ไปที่ Port : http://localhost:4200/ จะได้ Project Angular ดังนี้

การ Run Database

ก่อนที่ไปต่อกับ database ให้เราไป start ก่อน

คำสั่งในการรัน java -jar stubby4j-6.0.2.jar -d test-stubby.yaml หรือ stubby -d test-stubby.yaml ถ้า Install stubby ลงไปแล้ว

ถ้ารันสำเร็จ จะได้ดังนี้ ที่ Terminal

ขั้นตอนการ Connect Database

ทีนี้เราจะเริ่มทำการต่อกับ Database ให้ไปที่ src > app > app.module.ts และ import HttpClientModule เข้ามา ดังนี้

ทีนี้ไปที่ไฟล์ app.component.html และลบโค้ดออกให้หมดเลยนะคะ

ก่อนอื่น เราต้องการไฟล์ Config ถ้าไม่อย่างงั้นเราจะไม่สามารถเรียก Database ได้ เพราะ มันอยู่ที่เดียวกัน เราจึงต้องทำการจำลองตัว Config ขึ้นมา ไม่เช่นนั้นจะ Error แดงเถือก

เราต้องการไฟล์ที่จะมาใช้ในการ Config ทั้งสองให้สามารถติดต่อกันได้ โดยสร้างไฟล์ชื่อ proxy.conf.json และกำหนด path ไว้ที่ข้างนอกสุดเลย ส่วนที่เป็น target คือที่อยู่ของ Database เราแต่ละคนก็จะไม่เหมือนกัน

เมื่อได้ไฟล์ config แล้วการรันของเราก็จะเปลี่ยนไปจากเดิม เราจะใช้คำสั่งนี้

ng serve --proxy-config proxy.conf.json

ทีนี้ไปที่ไฟล์ app.component.ts แก้ไขโค้ดดังนี้ โดยเราจะ implement OnInit และสร้าง constructor จะไม่เปลี่ยนแปลงบ่อย เป็นการเตรียมการ และ OnInit จะเปลี่ยนตามคำสั่งของเราทุกครั้ง เป็นขั้นตอนการทำ

นำ HttpClient มาใช้ โดยการบอกว่า private ชื่อตัวแปร ค่าเป็นอะไร ไว้ที่ constructor ดังนี้

ทีนี้เราจะเรียกดู Data ของเราออกมาดู ดังนี้

คือตอนนี้เรารันอยู่นะคะ และให้ไปที่ Browser > คลิกขวา Inspect > Console เราจะเป็นอยู่ 3 Object ดังนี้

เราสร้างตัวแปรมารับค่า ชื่อว่า data ให้มีค่าเป็น Book[]

เพราะเราได้ประกาศไว้ class ไว้ข้างบนแล้ว

กำหนดในส่วนของ OnInit ด้วยว่าให้ data เท่ากับ response

โค้ดทั้งหมดที่ไฟล์ app.component.ts จะได้ดังนี้

คือเราต้องการที่จะให้ Data ของเรานี้ มาแสดงที่หน้าบ้าน ให้ไปที่ไฟล์ app.component.html กัน เราจะใช้ *ngFor ในการวนลูป data ออกมา ดังนี้

และจะแต่งนิดๆ ให้ไปที่ไฟล์ app.component.css

เสร็จแล้วไปดูผลลัพธ์ที่ Browser กันเลย

ซึ่งตรงกับ Database ของเราที่มีอยู่ จากการทำ Stubby API

สรุปเรามี
ProjectAngular Name : r-books
Database จากการ stubby : Stubby > test-stubby.yaml

เอาไว้เท่านี้ก่อนล่ะกัน บ๊ายยยย

--

--

No responses yet