88736065 การพัฒนาเอพีไอส่วนหลังบ้านสำหรับโปรแกรมประยุกต์
หน่วยกิต 3(2-2-5)
Join classroom
คำอธิบายรายวิชา:
หลักการสำคัญของเว็บเซอร์วิสและเอพีไอ มาตรฐานสำหรับเว็บเซอร์วิส สถาปัตยกรรมไมโครเซอร์วิส การสร้างเซอร์วิส การทำงานร่วมกับฐานข้อมูล การทำแคชชิ่ง การออกแบบเอพีไอ เพื่อรองรับการใช้งานจากโปรแกรมประยุกต์รูปแบบต่าง ๆ การทดสอบเอพีไอ การสร้างเอกสารเอพีไอ การเรียกใช้งานเว็บเอพีไอจากผู้ให้บริการต่าง ๆ การพิสูจน์ตัวตน และการตรวจสอบสิทธิ์ การออกแบบส่วนหลังบ้านเพื่อรองรับระบบขนาดใหญ่ ประเด็นเกี่ยวกับความปลอดภัย
วัตถุประสงค์ของรายวิชา
- เข้าใจหลักการพื้นฐานของเว็บเซอร์วิสและเอพีไอ
- สามารถออกแบบและพัฒนาเอพีไอตามมาตรฐานที่เหมาะสม
- เข้าใจสถาปัตยกรรมไมโครเซอร์วิสและการประยุกต์ใช้งาน
- สามารถพัฒนาระบบที่ทำงานร่วมกับฐานข้อมูลและระบบแคชชิ่ง
- เข้าใจและประยุกต์ใช้การพิสูจน์ตัวตนและการตรวจสอบสิทธิ์
- สามารถจัดการด้านความปลอดภัยสำหรับเว็บเซอร์วิส
นโยบายการใช้ AI และเทคโนโลยีใหม่
การใช้ AI และเทคโนโลยีใหม่ในการวิเคราะห์และออกแบบระบบจะต้องเป็นไปตามนโยบายของมหาวิทยาลัยและกฎหมายที่เกี่ยวข้อง โดยผู้เรียนไม่ควรใช้ AI ในการทำงานที่ต้องการความคิดสร้างสรรค์หรือการวิเคราะห์เชิงลึก แต่สามารถใช้ AI เพื่อช่วยในการค้นคว้าและรวบรวมข้อมูลได้ อย่างไรก็ตาม ผู้เรียนต้องรับผิดชอบต่อความถูกต้องและความสมบูรณ์ของงานที่ส่ง และต้องอ้างอิงแหล่งที่มาของข้อมูลที่ได้จาก AI อย่างเหมาะสม
กำหนดการสอน
| สัปดาห์ | หัวข้อ/รายละเอียด | slides/labs |
|---|---|---|
| 1 |
พื้นฐาน (Learn The Basics)
|
pdf lab |
| 2 |
HTTP
|
pdf lab เปรียบเทียบ HTTP เวอร์ชั่นต่าง ๆ Chrome Storages Compare CORS Preflight Request HTTP Caching API Security Essentials 40 JavaScript สมัยใหม่ |
| 3 |
รูปแบบ API ต่างๆ (Different API Styles)
Todo API - array Book API - MVC, array Product API - MVC, MySQL |
pdf lab2.1-Restful API Code Restful easy version.pdf ความแตกต่างระหว่าง Easy version และ lab02.1-Restful API lab2.1-GraphQL API RESTful API RESTful-6 Principles คู่มือ GraphQL Implement Food Delivery - backend |
|
HW#1
โจทย์ TaskManagement.pdf |
||
| 4 |
การสร้าง JSON/RESTful APIs
|
pdf Lab-Versioning Lab-Rate Limiting Lab-CRUD Idempotency Lab-6 Principles |
| Task Management with DB | ||
| 5 |
วิธีการยืนยันตัวตน (Authentication Methods)
HTML-Google-OAuth2.0 HTML-API-Google-OAuth2.0 |
pdf Lab-Basic Authentication Lab-Session Based Authentication Lab-Token Based Authentication Lab-JWT Authentication Lab-OAuth 2.0 Authentication |
| 6 |
วิธีการอนุญาต (Authorization Method)
|
pdf-RBAC-ABAC lab-RBAC Bug Tracking Specification ดาวน์โหลด Bug Tracking System.7z lab-ABAC ดาวน์โหลด ABAC Hybrid.7z คำอธิบาย lab RBAC, ABAC |
| 7 |
API Documentation Tools
|
pdf-API-Document and Tools,
Tools Express API with Swagger , demo-code(ทำตาม README ทั้ง 2 ไฟล์) , หรือ demo-code.zip API Document - Good/Bad ใช้งาน API Documentation อย่างไร API Document Template |
| 8 |
API Keys & Management
|
pdf-API Keys and Management lab-API Gateway with Kong |
| 9 |
ความปลอดภัย API (API Security)
|
pdf-API Security |
| 10 |
ประสิทธิภาพ API (API Performance)
|
pdf-API Performance |
| 11 |
รูปแบบการรวม API (API Integration Patterns)
|
pdf-API Integration Patterns |
| 12 |
การทดสอบ API (API Testing)
|
|
| 13 |
Real-Time APIs
|
|
| 14 | API Lifecycle Management | |
| 15 |
มาตรฐานและการปฏิบัติตาม (Standards and Compliance)
|
|
องค์ประกอบและสัดส่วนการวัดผล
- การสอบกลางภาค 25%
- การสอบปลายภาค 25%
- งานที่มอบหมาย 20%
- โครงงาน 30%
การประเมินผล
- เกรด A: 80-100
- เกรด B+: 75-79
- เกรด B: 70-74
- เกรด C+: 65-69
- เกรด C: 60-64
- เกรด D+: 55-59
- เกรด D: 50-54
- เกรด F: 0-49
ตำราและเอกสารหลัก
-
หนังสือภาษาอังกฤษ:
- RESTful Web APIs by Leonard Richardson & Mike Amundsen
- API Design Patterns by JJ Geewax
- Building Microservices by Sam Newman
- Web API Design: The Missing Link by Google Cloud เอกสารมาตรฐาน:
- OpenAPI Specification (OAS) 3.0+
- Documentation RFC 7231: HTTP/1-1 Semantics and Content
- RFC 6749: OAuth 2.0 Authorization Framework
- RFC 7519: JSON Web Token (JWT)
เอกสารแนะนำ
-
เว็บไซต์และแหล่งข้อมูลออนไลน์:
- API Design Guidelines (Google, Microsoft, GitHub)
- Postman Learning Center - การทดสอบและเอกสาร API
- OpenAPI Initiative - มาตรฐาน API documentation
- Kong Academy - API Gateway และ management
- AWS API Gateway Documentation
- Martin Fowler's Website - บทความ microservices และ API เครื่องมือและแพลตฟอร์ม:
- Swagger/OpenAPI - การสร้างเอกสาร API
- Postman - การทดสอบ API
- Insomnia - REST client
- Docker - สำหรับ containerization
- Apache Kafka - messaging และ event streaming
- Redis - caching solutions มาตรฐานและข้อกำหนด:
- GDPR Compliance Guidelines
- OWASP API Security Top 10
- PCI DSS Requirements (สำหรับการชำระเงิน)
- HIPAA Guidelines (สำหรับข้อมูลทางการแพทย์) วารสารและบทความวิชาการ:
- IEEE Software Magazine
- ACM Computing Surveys
- Journal of Web Engineering
- API Magazine