สารบัญ[ซ่อน][แสดง]
- 1. คุณเข้าใจอะไรจาก REST?
- 2. คุณหมายถึงอะไรโดย REST API
- 3. URI คืออะไรกันแน่?
- 4. คุณสมบัติของ RESTful Web Services คืออะไร?
- 5. หลักการชี้นำของ REST คืออะไร?
- 6. กล่าวถึงเมธอด HTTP ที่ REST รองรับ
- 7. อธิบายข้อจำกัดที่วางไว้โดยอินเทอร์เฟซที่สอดคล้องกัน
- 8. ทรัพยากร REST คืออะไร?
- 9. JAX-RS มีความหมายต่อคุณอย่างไร?
- 10. อะไรที่ทำให้ AJAX และ REST แตกต่างจากกัน
- 11. คุณสามารถระบุข้อเสียของบริการเว็บ RESTful ได้หรือไม่?
- 12. เทคนิค PUT และ POST แตกต่างกันอย่างไร?
- 13. คุณทดสอบบริการเว็บ RESTful อย่างไร?
- 14. อธิบาย REST API ในโลกแห่งความเป็นจริง
- 15. สถาปัตยกรรมไมโครเซอร์วิสทำงานอย่างไร
- 16. แคชคืออะไรกันแน่?
- 17. อธิบายน้ำหนักบรรทุก
- 18. ความแตกต่างระหว่าง SOAP Vs REST?
- 19. สามารถใช้ Transport Layer Security Protocol (TLS) กับ REST ได้หรือไม่
- 20. วิธี Idempotent: มันคืออะไร? นำไปใช้กับโลกของบริการเว็บ RESTful อย่างไร
- 21. การทำงานของ HTTP Basic Authentication คืออะไร?
- 22. คุณคิดว่า GraphQL เป็นตัวเลือกที่ดีที่สุดสำหรับการสร้างสถาปัตยกรรมไมโครเซอร์วิสหรือไม่?
- 23. อะไรคือความแตกต่างที่สำคัญระหว่างวิธี HTTP ที่ปลอดภัยและ idempotent?
- 24. JAX-RS API หมายถึงอะไรโดย RESTful Root Resource Classes?
- 25. บุรุษไปรษณีย์คืออะไรและทำไมจึงใช้
- 26. REST APIs ได้รับการรักษาความปลอดภัยอย่างไร?
- สรุป
วิวัฒนาการของ REST ทำให้ API สามารถเข้าถึงได้อย่างไม่น่าเชื่อในขณะที่ยังเผยให้เห็นถึงความแข็งแกร่งและศักยภาพอย่างเต็มที่ REST API นั้นสร้างและแคชได้ง่ายเนื่องจากสถาปัตยกรรมที่เน้นทรัพยากร
นอกจากนี้ ตลอดเวลา RESTful APIs เป็นผู้บุกเบิกการพัฒนาที่สำคัญอื่นๆ เช่น คลาวด์คอมพิวติ้งและการออกแบบบนไมโครเซอร์วิส
ดังนั้นจึงไม่น่าแปลกใจเลยที่นักพัฒนา REST API จะเป็นที่ต้องการในปัจจุบัน เนื่องจากพวกเขาให้บริการธุรกิจที่ใช้บริการ RESTful มีความได้เปรียบในการแข่งขัน REST API เป็นเทรนด์การออกแบบที่ได้รับความนิยม
บริษัทไอทีหลายแห่งต้องการความรู้ REST API จาก พัฒนาซอฟต์แวร์ และถามเกี่ยวกับเรื่องนี้ในการสัมภาษณ์ทางเทคนิค
ต่อไปนี้คือคำถามสัมภาษณ์ REST API ทั่วไปบางส่วนที่จะช่วยให้คุณพร้อมสำหรับการสัมภาษณ์ในบริษัทต่างๆ หากคุณต้องการทำงานในด้านการพัฒนา REST API
1. คุณเข้าใจอะไรจาก REST?
REST เป็นกระบวนทัศน์ทางสถาปัตยกรรมสำหรับการออกแบบแอปพลิเคชันบนเว็บที่ใช้ Hypertext Transfer Protocol (HTTP)
REST กำหนดมาตรฐานบางอย่างที่บริการเว็บต้องเป็นไปตามจึงจะถือว่า RESTful คำแนะนำเหล่านี้รับประกันว่าคำขอและทรัพยากรจะถูกส่งอย่างรวดเร็วและมีประสิทธิภาพระหว่างไคลเอนต์และเซิร์ฟเวอร์โดยใช้โปรโตคอล HTTP มาตรฐาน
2. คุณหมายถึงอะไรโดย REST API
ลิงก์ระหว่างซอฟต์แวร์กับซอฟต์แวร์ที่เรียกว่าอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันช่วยให้สามารถสื่อสารและแชร์ข้อมูลระหว่างโปรแกรมอิสระได้ ตัวอย่างเช่น เว็บไซต์ข่าวสามารถใช้ Twitter API เพื่อค้นหาทวีตที่เกี่ยวข้องโดยอัตโนมัติและรวมเข้ากับเรื่องราวข่าว
API ที่ยึดตามหลักการ REST เรียกว่า REST API ซึ่งบางครั้งเรียกว่า RESTful API ใน REST API ข้อมูลแต่ละชิ้นจะได้รับการจัดการเป็นทรัพยากรและกำหนดเอกลักษณ์ของทรัพยากรมาตรฐาน (URI) ที่แตกต่างกัน
ตัวอย่างเช่น Twitter API ทำให้ทุกทวีตเป็นทรัพยากรที่สามารถเรียกค้นได้ซึ่งลูกค้าสามารถใช้ได้ ผู้ใช้สามารถใช้ Twitter API เพื่อโพสต์ทวีตและทำงานอื่นๆ ของเว็บไซต์ได้
3. URI คืออะไรกันแน่?
A เครือข่ายคอมพิวเตอร์ ทรัพยากรสามารถอ้างถึงได้โดยใช้ URI หรือตัวระบุทรัพยากรแบบเดียวกัน มันทำหน้าที่เป็นวิธีการแยกทรัพยากรหนึ่งออกจากอีกแหล่งหนึ่ง แหล่งข้อมูลอาจออนไลน์อยู่หรือไม่ก็ได้
เนื่องจากโครงสร้างมาตรฐาน URI ทำให้ง่ายต่อการเชื่อมต่อกับทรัพยากรประเภทต่างๆ ตำแหน่งหรือชื่อของทรัพยากรรวมอยู่ใน URI ร่วมกับสตริงอักขระ
URI ประกอบด้วยพาธ แบบแผน การสืบค้น และองค์ประกอบอื่นๆ แต่ไม่รวมโปรโตคอล
การใช้โปรโตคอล URL (Uniform Resource Locators) ถูกใช้เพื่อค้นหาแหล่งข้อมูลบนอินเทอร์เน็ตหรือเข้าถึงได้ผ่านทางอินเทอร์เน็ต
4. คุณสมบัติของ RESTful Web Services คืออะไร?
- กระบวนทัศน์ Client-Server เป็นรากฐานของบริการ
- บริการสามารถเข้าถึงทรัพยากรโดยใช้ URI
- บริการนี้ใช้โปรโตคอล HTTP เพื่อรับข้อมูล/ทรัพยากร เรียกใช้การสืบค้น และทำงานอื่นๆ
- ข้อความเป็นชื่อของวิธีการที่ใช้ในการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์
- บริการเหล่านี้สามารถใช้รูปแบบสถาปัตยกรรม REST โดยใช้บริการ SOAP
- เพื่อลดการเรียกใช้เซิร์ฟเวอร์สำหรับคำขอที่ซ้ำซากจำเจ บริการเหล่านี้ยังใช้แนวคิดของการแคช
5. หลักการชี้นำของ REST คืออะไร?
REST APIs ต้องเป็นไปตามเกณฑ์ห้าข้อ:
การแยกส่วนไคลเอนต์ - เซิร์ฟเวอร์: เฉพาะชุดของคำขอและการตอบกลับเท่านั้นที่สามารถใช้ในการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์ เฉพาะไคลเอนต์และเซิร์ฟเวอร์เท่านั้นที่สามารถส่งคำขอและคำตอบตามลำดับ แนวคิดที่ตรงไปตรงมานี้ช่วยให้ทั้งสองฝ่ายสามารถทำงานได้อย่างอิสระ
อินเทอร์เฟซแบบเดียวกัน: ต้องมีโปรโตคอลที่เหมือนกันสำหรับการเชื่อมต่อไคลเอ็นต์-เซิร์ฟเวอร์ทั้งหมด โปรโตคอลนี้สำหรับ REST คือ HTTP เนื่องจากแต่ละแอปพลิเคชันร้องขอและส่งข้อมูลโดยใช้ภาษาเดียวกัน อินเทอร์เฟซที่สอดคล้องกันทำให้การผสานรวมง่ายขึ้น
ไร้สัญชาติ: เซิร์ฟเวอร์ไม่บันทึกคำขอหรือคำตอบก่อนหน้าในการสื่อสารแบบไร้สัญชาติ คำขอและคำตอบแต่ละรายการจะให้รายละเอียดทั้งหมดที่จำเป็นในการแลกเปลี่ยน การสื่อสารแบบไร้สัญชาติช่วยเพิ่มความเร็ว ประหยัดหน่วยความจำ และลดความเครียดบนเซิร์ฟเวอร์ นอกจากนี้ยังช่วยหลีกเลี่ยงโอกาสที่คำขอจะล้มเหลวเนื่องจากข้อมูลไม่สมบูรณ์
ระบบเลเยอร์: เซิร์ฟเวอร์ที่อยู่ระหว่างไคลเอนต์และเซิร์ฟเวอร์ API จะเรียกว่าเลเยอร์ เซิร์ฟเวอร์พิเศษเหล่านี้ให้บริการที่หลากหลาย เช่น ตรวจจับสแปมและปรับความเร็วให้เหมาะสม เลเยอร์ใน REST เป็นแบบโมดูลาร์ ซึ่งหมายความว่าสามารถเพิ่มและลบได้โดยไม่กระทบต่อการสื่อสารระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ API
แคชได้: ลูกค้าสามารถแคชทรัพยากรใด ๆ เพื่อเพิ่มความเร็วหากคำตอบของเซิร์ฟเวอร์ระบุว่าทรัพยากรนั้นแคชได้หรือไม่
การเข้ารหัสตามต้องการ: ในการตอบสนอง API สามารถส่งรหัสคอมพิวเตอร์ที่ปฏิบัติการได้ให้กับลูกค้า แอปพลิเคชันไคลเอ็นต์สามารถเรียกใช้โค้ดที่ส่วนหลังของตัวเองได้
6. กล่าวถึงเมธอด HTTP ที่ REST รองรับ
เมธอด HTTP ที่ REST รองรับคือ:
- GET: วิธีนี้จะขอทรัพยากรที่ URL ที่ระบุ ไม่ควรรวมเนื้อหาคำขอเพราะจะถูกละเว้น เป็นไปได้ที่จะแคชในเครื่องหรือบนเซิร์ฟเวอร์
- POST: เมธอดนี้จะส่งข้อมูลไปยังบริการเพื่อการประมวลผล และโดยปกติแล้วบริการควรส่งคืนทรัพยากรใหม่หรือที่เปลี่ยนแปลง
- PUT: ทรัพยากรได้รับการอัปเดตที่ URL คำขอ
- ลบ: ทรัพยากรถูกลบที่ URL คำขอ
- ตัวเลือก: ระบุวิธีการที่ได้รับการสนับสนุน
- HEAD: มีการส่งคืนข้อมูลเมตาของ URL คำขอ
7. อธิบายข้อจำกัดที่วางไว้โดยอินเทอร์เฟซที่สอดคล้องกัน
ในการแยกไคลเอ็นต์ออกจากเซิร์ฟเวอร์ จำเป็นต้องมีอินเทอร์เฟซที่สอดคล้องกัน
เพื่อให้ได้อินเทอร์เฟซที่สอดคล้องกัน จำเป็นต้องมีข้อจำกัดสี่ข้อต่อไปนี้:
- การระบุทรัพยากร: คำขอของไคลเอ็นต์ต้องใช้รหัสทรัพยากรมาตรฐานเพื่อระบุทรัพยากร (URI)
- การจัดการทรัพยากรโดยใช้การแทนค่าเหล่านี้: ลูกค้ามีข้อมูลทั้งหมดที่จำเป็นเพื่อให้สามารถเปลี่ยนแปลงสถานะของทรัพยากรได้เมื่อได้รับตัวแทนทรัพยากรจากเซิร์ฟเวอร์
- ข้อความอธิบายตนเอง: ข้อความประกอบด้วยข้อมูลเมตาทั้งหมดและข้อมูลอื่น ๆ ที่จำเป็นสำหรับผู้รับในการทำความเข้าใจ
- Hypermedia เป็นกลไกจัดการสถานะแอปพลิเคชัน: ช่องทางสำหรับการสื่อสารระหว่างไคลเอนต์กับเซิร์ฟเวอร์คือไฮเปอร์มีเดีย เช่น HTML และไคลเอนต์ไม่ต้องการเอกสารเฉพาะ API เพื่อทำความเข้าใจคำตอบของเซิร์ฟเวอร์
8. ทรัพยากร REST คืออะไร?
ทรัพยากรเป็นองค์ประกอบพื้นฐานของบริการเว็บ RESTful ในสถาปัตยกรรม REST ประกอบด้วยข้อมูลสำคัญทั้งหมดที่ไคลเอ็นต์ API จำเป็นต้องเข้าถึง
ทรัพยากรประเภทใดก็ได้ เช่น หน้า HTML รูปภาพ วิดีโอ หรือสิ่งอื่นที่จำเป็นสำหรับกิจกรรม API สามารถเข้าถึงได้ผ่านเซิร์ฟเวอร์ในระบบไคลเอนต์-เซิร์ฟเวอร์
ทรัพยากรถูกระบุโดย Uniform Resource Identifier ข้อความ, JSON หรือ XML ล้วนเป็นตัวแทนของทรัพยากรที่ยอมรับได้ โดยระบุว่าไม่มีข้อจำกัดเกี่ยวกับรูปแบบของการแสดงตน
9. JAX-RS มีความหมายต่อคุณอย่างไร?
การสร้างบริการเว็บ RESTful ใน Java ทำได้ง่ายกว่าด้วย Java API สำหรับบริการเว็บ RESTful ซึ่งมักรู้จักกันในชื่อ JAX-RS นักพัฒนาสามารถอธิบายทรัพยากรและการดำเนินการที่สามารถทำได้โดยใช้คำอธิบายประกอบที่ให้มา
10. อะไรที่ทำให้ AJAX และ REST แตกต่างจากกัน
อาแจ็กซ์:
- Ajax คือกลุ่มของเทคโนโลยีที่ช่วยให้การอัพเดทแบบไดนามิกของ ส่วนติดต่อผู้ใช้ องค์ประกอบโดยไม่ต้องโหลดหน้าซ้ำ
- Ajax ลบการสื่อสารแบบอะซิงโครนัสระหว่างไคลเอนต์และเซิร์ฟเวอร์
พักผ่อน:
- REST ต้องการการสื่อสารระหว่างเซิร์ฟเวอร์และไคลเอ็นต์
- การใช้ทรัพยากรมีความสำคัญต่อโครงสร้าง URL และรูปแบบคำขอ/การตอบสนองที่ใช้โดย REST
11. คุณสามารถระบุข้อเสียของบริการเว็บ RESTful ได้หรือไม่?
ไม่สามารถรักษาเซสชันได้เนื่องจากบริการเป็นไปตามแนวคิดเรื่องความไร้สัญชาติ (ลูกค้ามีหน้าที่ส่งรหัสเซสชันตลอดการจำลองเซสชัน)
ข้อจำกัดด้านความปลอดภัยไม่ใช่พื้นฐานของ REST โปรโตคอลที่ใช้จะสืบทอดมาตรการป้องกันความปลอดภัย ดังนั้น การระมัดระวังในขณะที่วางมาตรการรักษาความปลอดภัย เช่น การผสานการรับรองความถูกต้องบน SSL/TLS เป็นสิ่งสำคัญ
12. เทคนิค PUT และ POST แตกต่างกันอย่างไร?
วาง:
- ไม่มีแคชสำหรับการตอบสนอง PUT
- Idempotent (เช่น คำขอหลายรายการจะให้ผลลัพธ์เหมือนกัน)
- เพย์โหลดของคำขออัปเดตหรือแทนที่ทรัพยากรเป้าหมาย
โพสต์:
- idempotent ไม่ (เช่น คำขอหลายรายการจะให้ผลลัพธ์เป็นทวีคูณของทรัพยากรเดียวกัน)
- เว็บเซิร์ฟเวอร์ประมวลผลเพย์โหลดของคำขอตามทรัพยากรที่ต้องการ
- หากมีส่วนหัวการควบคุมแคชที่เหมาะสมอยู่ด้วย สามารถแคชการตอบกลับ POST ได้
13. คุณทดสอบบริการเว็บ RESTful อย่างไร?
การทดสอบบริการเว็บ RESTful สามารถช่วยได้ด้วยเครื่องมือมากมาย รวมถึง Swagger และบุรุษไปรษณีย์ การตรวจสอบพารามิเตอร์คำขอ เช่น พารามิเตอร์การสืบค้น ส่วนหัว และส่วนหัวของการตอบสนองนั้นเป็นไปได้ด้วยคุณสมบัติมากมายของตัวหลัง
บุรุษไปรษณีย์สามารถใช้เพื่อส่งคำขอไปยังปลายทางและแสดงผลได้ และสามารถสร้าง XML และ JSON ได้จากคำตอบเหล่านี้
บุรุษไปรษณีย์และ Swagger ต่างก็มีฟังก์ชันที่เทียบเคียงกันได้อย่างลงตัว ในทางกลับกัน Swagger ยังมีความสามารถเช่นเอกสารปลายทาง
14. อธิบาย REST API ในโลกแห่งความเป็นจริง
- เว็บไซต์การเดินทางและการออกตั๋วสามารถใช้ประโยชน์จากเวลาเที่ยวบินและราคาที่สายการบินให้บริการผ่าน API
- เพื่อให้แอปแผนที่และการนำทาง (เช่น Google Maps) ใช้งานได้ หน่วยงานการขนส่งสาธารณะมักจะเปิดเผยข้อมูลต่อสาธารณะแบบเรียลไทม์ผ่าน API
- แอปพลิเคชันสภาพอากาศใช้ API แบบเปิดที่แลกเปลี่ยนข้อมูลสภาพอากาศเพื่อแสดงข้อมูลสภาพอากาศ
- นักพัฒนาสามารถเข้าถึงข้อมูลการทำแผนที่ของ Google Maps ผ่าน API ที่โฮสต์ไว้จำนวนหนึ่ง นักพัฒนาใช้ API เหล่านี้เพื่อฝังแผนที่แบบไดนามิกในแอปและเว็บไซต์
15. สถาปัตยกรรมไมโครเซอร์วิสทำงานอย่างไร
- ลูกค้าหลายรายส่งคำขอโดยใช้อุปกรณ์ต่างๆ
- หลังจากยืนยันตัวตนของลูกค้าแล้ว ผู้ให้บริการข้อมูลประจำตัวจะจัดเตรียมโทเค็นการรักษาความปลอดภัย
- คำขอของไคลเอ็นต์ได้รับการจัดการโดย API Gateway
- วัสดุของระบบทั้งหมดจะถูกเก็บรักษาไว้เป็นเนื้อหาแบบคงที่
- เครื่องมือการจัดการตรวจสอบความสมดุลของบริการบนโหนดและข้อบกพร่องใดๆ
- การค้นพบเส้นทางของการสื่อสารระหว่างไมโครเซอร์วิสได้รับความช่วยเหลือจากการค้นพบบริการ
- ศูนย์ข้อมูลและพร็อกซีเซิร์ฟเวอร์ประกอบกันเป็นระบบเครือข่ายแบบกระจายที่เรียกว่าเครือข่ายการส่งเนื้อหา
- บริการระยะไกลให้การเข้าถึงข้อมูลจากระยะไกล
16. แคชคืออะไรกันแน่?
แนวทางปฏิบัติในการเก็บสำเนาของเซิร์ฟเวอร์ไว้ชั่วคราวเพื่อตอบที่ใดที่หนึ่ง (เช่น หน่วยความจำคอมพิวเตอร์) เพื่อเข้าถึงในภายหลังได้รวดเร็วยิ่งขึ้นเรียกว่าการแคช
การแคชช่วยเพิ่มความเร็วของเซิร์ฟเวอร์เมื่อใช้ REST API โดยการลดปริมาณงานที่เซิร์ฟเวอร์ต้องทำเพื่อให้เป็นไปตามคำขอ แอปพลิเคชันที่ใช้ API ทำงานได้เร็วขึ้นด้วยการแคช เนื่องจากไม่ต้องส่งคำขอใหม่ทุกครั้งที่ต้องการทรัพยากร
ฟิลด์ Cache-Control ของส่วนหัวการตอบสนอง HTTP มีข้อมูลเกี่ยวกับระยะเวลาที่ไคลเอ็นต์สามารถแคชทรัพยากรได้ก่อนที่จะต้องเข้าถึงอีกครั้ง
17. อธิบายน้ำหนักบรรทุก
เพย์โหลดใน REST อ้างอิงถึงข้อมูลที่มีอยู่ในเนื้อหาของการตอบสนอง HTTP ลูกค้าใช้เทคนิค GET เพื่อขอข้อมูลที่เป็นปัญหา
เอกสารที่มีข้อความทวีตและไฟล์ที่จำเป็นสำหรับการโพสต์ทวีตบนเว็บไซต์จะรวมอยู่ในเพย์โหลด ตัวอย่างเช่น หากคุณขอทวีตเฉพาะจาก Twitter API นอกจากนี้ เพย์โหลดสามารถรวมอยู่ในคำขอ HTTP โดยใช้วิธี POST
18. สร้างความแตกต่าง สบู่กับส่วนที่เหลือ?
- REST ต่างจาก SOAP ที่จัดการได้เฉพาะ XML เท่านั้น REST ช่วยให้สามารถใช้รูปแบบทรัพยากรได้หลากหลายขึ้น รวมถึง XML, ข้อความ, HTML, รูปภาพ, วิดีโอ และอื่นๆ
- เมื่อความปลอดภัยเป็นสิ่งสำคัญสำหรับแอปพลิเคชันออนไลน์ SOAP ก็มีประโยชน์ ไม่สามารถใช้ REST เมื่อการทำธุรกรรมต้องเสร็จสิ้นอย่างปลอดภัยเนื่องจากไม่ปลอดภัยเป็นพิเศษ
- เนื่องจาก SOAP เป็นเพียงโปรโตคอล REST จึงสามารถใช้ในบริการบนเว็บได้ แต่ไม่สามารถใช้ในทางอื่นได้
- ในขณะที่ REST เป็นเพียงรูปแบบสถาปัตยกรรมที่ใช้ในการพัฒนาบริการเว็บและปฏิบัติตามข้อจำกัดบางประการ เช่น การตั้งค่าเซิร์ฟเวอร์ไคลเอ็นต์ การไร้สัญชาติ การตอบสนองที่แคชได้ ระบบเลเยอร์ และอินเทอร์เฟซที่สอดคล้องกัน SOAP เป็นโปรโตคอลที่ทำงานบนมาตรฐานเฉพาะที่ต้องปฏิบัติตามอย่างเคร่งครัด ถึง.
- ในขณะที่ REST ใช้ตัวระบุทรัพยากรสากล (URI) SOAP จะใช้อินเทอร์เฟซบริการเพื่อให้ความสามารถกับแอปพลิเคชันไคลเอ็นต์ REST มีความต้องการแบนด์วิดท์ต่ำกว่า SOAP เนื่องจากข้อความ SOAP มีข้อมูลจำนวนมาก
19. สามารถใช้ Transport Layer Security Protocol (TLS) กับ REST ได้หรือไม่
ในความเป็นจริงเราสามารถ การสื่อสารของไคลเอ็นต์ REST และเซิร์ฟเวอร์ได้รับการเข้ารหัสผ่าน TLS และโปรโตคอลยังช่วยให้ไคลเอ็นต์ตรวจสอบสิทธิ์เซิร์ฟเวอร์ได้อีกด้วย
เนื่องจากเป็นการแทนที่ของ Secure Socket Layer จึงใช้สำหรับการสื่อสารที่ปลอดภัย (SSL) การนำบริการเว็บ RESTful ไปใช้นั้นประสบความสำเร็จด้วย HTTPS เนื่องจากสามารถทำงานร่วมกับทั้ง TLS และ SSL ได้อย่างมีประสิทธิภาพ
REST สืบทอดคุณลักษณะของโปรโตคอลที่นำไปใช้ ซึ่งเป็นสิ่งหนึ่งที่ควรทราบในที่นี้ ด้วยเหตุนี้ การรักษาความปลอดภัยจึงขึ้นอยู่กับโปรโตคอลที่ REST ใช้
20. วิธี Idempotent: มันคืออะไร? นำไปใช้กับโลกของบริการเว็บ RESTful อย่างไร
เมื่อ URI เหมือนกัน เมธอด HTTP บางวิธีในคำขอจะมีผลเช่นเดียวกันกับเซิร์ฟเวอร์ ไม่ว่าจะส่งครั้งเดียวหรือหลายครั้ง เทคนิค Idempotent เป็นสิ่งที่เรียกว่า
ตัวอย่างเช่น ไม่ว่าจะรัน URI โดยใช้เมธอด GET กี่ครั้ง เซิร์ฟเวอร์ก็จะได้ผลลัพธ์แบบเดียวกันเสมอ เมธอด Idempotent ได้แก่ GET, PUT และ PATCH เป็นต้น
วิธี HTTP Idempotent คือวิธีบางส่วนที่ใช้โดย RESTful เว็บแอปพลิเคชัน. สิ่งเหล่านี้จำเป็นต่อการรับประกันความสอดคล้องในกิจกรรมของบริการเว็บ RESTful
ลูกค้าที่ใช้ REST API สามารถสร้างข้อผิดพลาดของโค้ดที่บังคับให้ REST API ส่งคำขอซ้ำโดยไม่ได้ตั้งใจได้ การโทรเหล่านี้มีศักยภาพในการใช้ทรัพยากรในทางที่ผิด
21. การทำงานของ HTTP Basic Authentication คืออะไร?
เมื่อใช้ Basic Authentication เป็นส่วนหนึ่งของ API ผู้ใช้จะต้องส่งชื่อผู้ใช้และรหัสผ่านซึ่งเชื่อมต่อโดยเบราว์เซอร์ในรูปแบบ "ชื่อผู้ใช้: รหัสผ่าน" และเข้ารหัส base64
ในทุกคำขอ HTTP จากเบราว์เซอร์ ค่าที่เข้ารหัสจะถูกส่งเป็นค่าสำหรับส่วนหัว "Authorization" เนื่องจากข้อมูลประจำตัวถูกเข้ารหัส ขอแนะนำให้ใช้แบบฟอร์มนี้เมื่อส่งคำขอ HTTPS เนื่องจากไม่ปลอดภัยและใครก็ตามสามารถสกัดกั้นได้หากไม่มีการใช้โปรโตคอลความปลอดภัย
22. คุณคิดว่า GraphQL เป็นตัวเลือกที่ดีที่สุดสำหรับการสร้างสถาปัตยกรรมไมโครเซอร์วิสหรือไม่?
Microservices และ GraphQL เข้ากันได้อย่างสมบูรณ์แบบเพราะ GraphQL รักษาสถาปัตยกรรม microservice ของคุณเป็นความลับจากลูกค้าของคุณ
จากส่วนหน้า คุณต้องการให้ข้อมูลทั้งหมดของคุณมาจาก API เดียว ในขณะที่จากส่วนหลัง คุณต้องการแบ่งออกเป็นไมโครเซอร์วิส เทคนิคที่ดีที่สุดที่ฉันรู้จักเพื่อให้บรรลุทั้งสองอย่างคือการใช้ GraphQL
ช่วยให้คุณสามารถแบ่งแบ็กเอนด์ของคุณออกเป็นไมโครเซอร์วิสในขณะที่ยังคงให้แต่ละแอปพลิเคชันมี API เดียวและเปิดใช้งานการรวมข้อมูลจากบริการต่างๆ
23. อะไรคือความแตกต่างที่สำคัญระหว่างวิธี HTTP ที่ปลอดภัยและ idempotent?
เมธอด Idempotent ให้ผลลัพธ์เดียวกันเมื่อเรียกใช้ครั้งเดียวหรือหลายครั้งผ่านคำขอเดียวกัน วิธี PUT นั้นไม่มีประสิทธิภาพ
วิธีที่ปลอดภัยทั้งหมดเป็นวิธีที่มีประสิทธิภาพ แต่ไม่ใช่วิธีการที่เหมาะสมทั้งหมดนั้นปลอดภัยเนื่องจากวิธีการที่ปลอดภัยไม่ได้เปลี่ยนแปลงทรัพยากร ตัวอย่างเช่น GET มีความปลอดภัยเนื่องจากเพิ่งดึงข้อมูลและไม่เปลี่ยนแปลงทรัพยากร
นอกจากนี้ยังเป็น idempotent ซึ่งหมายความว่าจะส่งคืนคำตอบเดียวกันเสมอเมื่อเรียกใช้
24. JAX-RS API หมายถึงอะไรโดย RESTful Root Resource Classes?
Java Enterprise Edition มีคลาสและอินเทอร์เฟซที่เป็นไปตามข้อกำหนด JAX-RS API ด้วยความช่วยเหลือของ JAX-RS การสร้างบริการเว็บ Java ในรูปแบบสถาปัตยกรรม REST จะทำได้ง่ายขึ้น
ใน JAX-RS API คลาสรีซอร์สรูทเป็นเพียง “อ็อบเจ็กต์จาวาธรรมดาแบบธรรมดา” หรือ POJO เพื่อนำทรัพยากรบนเว็บที่จำเป็นไปใช้ พวกเขาใช้คำอธิบายประกอบ JAX-RS
พวกเขามีคำอธิบายประกอบ @path หรืออย่างน้อยหนึ่งวิธีของพวกเขามีคำอธิบายประกอบ @path สามารถสรุปเป็นคลาส Java พร้อมวิธีการจัดการกับจุดปลาย API
25. บุรุษไปรษณีย์คืออะไรและทำไมจึงใช้
เครื่องมือพัฒนา API ที่เรียกว่า Postman ใช้สำหรับสร้าง ทดสอบ และแก้ไข API นักพัฒนาสามารถใช้เครื่องมือนี้สำหรับคุณลักษณะใดก็ได้ที่พวกเขาต้องการสำหรับ API ช่วยลดความยุ่งยากและอำนวยความสะดวกให้กับงานของนักพัฒนา
บุรุษไปรษณีย์ทำให้ง่ายต่อการสร้างการสืบค้น HTTP ที่หลากหลาย รวมถึง GET, POST, PUT และ PATCH บันทึกสภาพแวดล้อมสำหรับใช้ในภายหลัง และแปลง API เป็นโค้ดในภาษาต่างๆ มากมาย
แต่ละขั้นตอนของรอบ API นั้นง่ายขึ้นด้วยบุรุษไปรษณีย์ และความร่วมมือก็คล่องตัวขึ้นเพื่อการพัฒนา API ที่รวดเร็วยิ่งขึ้น
นอกจากนี้ ยังช่วยให้นักพัฒนาสามารถจัดการเอกสาร ข้อมูลจำเพาะ กรณีทดสอบ กระบวนการ และแค็ตตาล็อก API
26. REST APIs ได้รับการรักษาความปลอดภัยอย่างไร?
เนื่องจาก REST API ไม่ได้ใช้เป็นการป้องกันความปลอดภัยอย่างเข้มงวดเหมือน SOAP API จึงไม่ควรมีการส่งหรือดึงข้อมูลที่ละเอียดอ่อนโดยใช้ข้อมูลเหล่านี้
อย่างไรก็ตาม REST API ที่น่าเชื่อถือยังคงรวมการควบคุมความปลอดภัยเพื่อการส่งข้อมูลที่ปลอดภัยและเชื่อถือได้
- การตรวจสอบสิทธิ์และการอนุญาต: ทุกคำขอที่ส่งไปยัง API จะต้องผ่านการตรวจสอบทั้งสองนี้ การยืนยันตัวตนของลูกค้าผ่านการตรวจสอบและตรวจสอบว่าพวกเขามีอำนาจในการเข้าถึงทรัพยากรที่ร้องขอผ่านการอนุญาตเป็นสองขั้นตอนที่แตกต่างกัน
- การตรวจสอบความถูกต้อง: ก่อนที่ API จะให้สิทธิ์เข้าถึงทรัพยากร คำขอยังต้องได้รับการตรวจสอบเพื่อหารหัสที่อาจเป็นอันตรายหลังจากการตรวจสอบสิทธิ์และการให้สิทธิ์ เซิร์ฟเวอร์จะเปิดรับการโจมตีแบบฉีด
- การตรวจสอบความถูกต้อง: ก่อนที่ API จะให้สิทธิ์เข้าถึงทรัพยากร คำขอยังต้องได้รับการตรวจสอบเพื่อหารหัสที่อาจเป็นอันตรายหลังจากการตรวจสอบสิทธิ์และการให้สิทธิ์ เซิร์ฟเวอร์จะเปิดรับการโจมตีแบบฉีด
- การเข้ารหัส: การเข้ารหัส TLS/SSL ปกป้องการเชื่อมต่อระหว่างไคลเอนต์และเซิร์ฟเวอร์ และป้องกันไม่ให้แฮกเกอร์ดักฟังคำขอและคำตอบ
- เทคนิคการจำกัดอัตรา เช่น การจำกัดและการควบคุมปริมาณ ปกป้องเซิร์ฟเวอร์จากการโจมตีด้วยกำลังดุร้าย เช่น DDoS ที่มีจุดมุ่งหมายเพื่อลดระดับหรือทำให้เซิร์ฟเวอร์ขัดข้อง
- ไม่มีข้อมูลที่ละเอียดอ่อนใน URI: URI ของทรัพยากรไม่ควรมีข้อมูลที่ได้รับการป้องกัน (เช่น ชื่อผู้ใช้ รหัสผ่าน หรือโทเค็นการตรวจสอบสิทธิ์)
สรุป
ยินดีด้วย! คำถามสัมภาษณ์ REST API ขั้นพื้นฐานถึงซับซ้อนหลายข้อและวิธีแก้ปัญหาที่เกี่ยวข้องอยู่แค่เพียงปลายนิ้วสัมผัส
ตอนนี้ คุณมีแนวคิดที่ดีในการตอบคำถามสัมภาษณ์ REST API ทั่วไปแล้ว คุณสามารถตอบกลับการสัมภาษณ์ได้ ขั้นตอนต่อไปขึ้นอยู่กับวัตถุประสงค์ของคุณ
เยี่ยมชมร้านค้า บทสัมภาษณ์ กับ Hashdork เพื่อเตรียมสัมภาษณ์
เขียนความเห็น