การเป็น Programmer มีเรื่องให้เรียนรู้มากมาย และมีรายละเอียดยิบย่อยเต็มไปหมด นอกจากจะต้องเข้าใจ พื้นฐาน Technical และเขียนโค้ดได้แล้ว ยังต้องรู้การเขียนโค้ด ให้โค้ดสามารถดูแลได้ง่ายและสามารถพัฒนา ต่อยอดได้ในอนาคตอีกทั้งยังต้องเข้าใจกระบวนการทำงานทั้งขององค์กรและทีม ต้องมี soft skills ที่จำเป็นอย่างการสื่อสารด้วย
ฟังแล้วอาจจะดูหัวหมุน แต่ไม่ต้องกลัวไป วันนี้เรามี Technical Guidelines ซึ่งเป็นหัวข้อต่าง ๆ ที่สำคัญกับ software engineer มาแชร์ให้ทุกคน! เพราะนอกจากการที่มองภาพรวมออกแล้ว เราก็จำเป็นจะต้องรู้ technical skills เหล่านี้ด้วยเพื่อให้เราพร้อมทำงาน โดยหัวข้อที่เราหยิบมาเล่าในวันนี้คือ API นั่นเอง
Table of Contents
API คืออะไร
API คือตัวกลางการรับส่งข้อมูลระหว่าง Frontend และ Backend ยกตัวอย่างเช่น การเรียกรับส่งข้อมูลระหว่าง website หรือ application กับ server โดย 2 รูปแบบหลักของ API ที่นิยมในปัจจุบันคือ RESTFul API และ GraphQL
1. RESTFul API
รับส่งข้อมูลระหว่าง Frontend และ Backend ผ่าน Protocol ที่เรียกว่า http โดย RESTFul API จะมีคำสำคัญคำนึง เรียกว่า ‘CRUD’ ซึ่ง CRUD ก็จะจับคู่กับ Methods ทั้ง 4 ตัว ดังนี้
- POST คือ ‘Create’ (C) : ใช้สร้างข้อมูลใหม่ ๆ ในฝั่ง Backend
- GET คือ ‘Read’ (R) : ยิง API เพื่อเอาข้อมูลจาก Backend กลับมาให้ Frontend แสดง
- PUT/PATCH คือ ‘Update’ (U) : การอัปเดตข้อมูล
- DELETE คือ ‘Delete’ (D) : การลบข้อมูล
โดยในการออกแบบ URL นั้น ก็จะมีหลักการการออกแบบที่ทำให้มันจับคู่กับ 4 วิธีที่เราได้กล่าวไปข้างต้น ซึ่งโดยทั่วไปแล้วมักจะนิยมตั้งชื่อ URL ให้เหมือนกัน แต่ก็อาจจะมีบางกรณี ที่ตั้งแตกต่างกันได้
2. GraphQL
แม้ GraphQL จะลงท้ายด้วย QL แต่จริง ๆ ไม่ได้ถูกเอาไปใช้ fetch หรือ query ข้อมูล ใน database เหมือน SQL แต่อย่างใด
GraphQL รับส่งข้อมูลระหว่าง Frontend และ Backend ใช้โปรโตคอล http เหมือนกันกับ RESTFul API แต่ต่างกันตรงที่ GraphQL จะมี endpoint URL ตัวเดียว และ Frontend จะเป็นคนกำหนดข้อมูลที่ต้องการจะ fetch แทน Backend
GraphQL จึงเหมาะกับงานที่ เราต้องการดึงข้อมูลในหลากหลายรูปแบบไปแสดงเพื่อซัพพอร์ตหลายแพลตฟอร์ม และแก้ไข overfetching และ multiple round-trips ที่เกิดขึ้นใน RESTFul API ได้นั่นเอง
หัวข้อ API นี้เป็นหนึ่งใน Technical Guidelines ที่สำคัญ แต่ยังมี Guidelines อื่น ๆ อย่างการ Clean Code, Automate Testing, Version control, Code reviews, Software delivery ที่คุณต้องรู้เพื่อพัฒนาเป็นโปรแกรมเมอร์มือโปร!
มาอัปสกิลไปกับคอร์ส How to Become a Better Programmer เนื้อหาจัดเต็ม ผู้สอนประสบการณ์แน่น! คุณบอย-วรายุทธ เลิศกัลยาณวัตร Engineering Manager ที่ Canva และ อดีต Software Development Engineer ที่ Amazon
สนใจสมัครเรียน/ศึกษารายละเอียดเพิ่มเติม คลิก How to Become a Better Programmer ได้เลย!