ฉันเคยได้ยินทั้ง "ทรัพยากร" และ "ปลายทาง" เพื่ออ้างถึงสิ่งเดียวกัน ดูเหมือนว่าทรัพยากรเป็นคำที่ใหม่กว่า
ความแตกต่างระหว่างพวกเขาคืออะไร? "ทรัพยากร" แสดงถึงการออกแบบที่สงบเงียบหรือไม่?
ฉันเคยได้ยินทั้ง "ทรัพยากร" และ "ปลายทาง" เพื่ออ้างถึงสิ่งเดียวกัน ดูเหมือนว่าทรัพยากรเป็นคำที่ใหม่กว่า
ความแตกต่างระหว่างพวกเขาคืออะไร? "ทรัพยากร" แสดงถึงการออกแบบที่สงบเงียบหรือไม่?
คำตอบ:
ทรัพยากรเป็นส่วนย่อยสงบของปลายทาง
ปลายทางโดยตัวเองเป็นสถานที่ที่ให้บริการสามารถเข้าถึงได้:
https://www.google.com # Serves HTML
8.8.8.8 # Serves DNS
/services/service.asmx # Serves an ASP.NET Web Service
ทรัพยากรหมายถึงหนึ่งหรือมากกว่าคำนามที่ถูกเสิร์ฟเป็นตัวแทนในแฟชั่น namespaced เพราะมันเป็นเรื่องง่ายสำหรับมนุษย์ที่จะเข้าใจ:
/api/users/johnny # Look up johnny from a users collection.
/v2/books/1234 # Get book with ID 1234 in API v2 schema.
ทั้งหมดข้างต้นอาจถือได้ว่าเป็นจุดสิ้นสุดการบริการ แต่เฉพาะกลุ่มด้านล่างเท่านั้นที่จะได้รับการพิจารณาเป็นทรัพยากรพูดอย่างสงบ กลุ่มบนไม่แสดงความเห็นเกี่ยวกับเนื้อหาที่ให้ไว้
คำขอ REST เปรียบเสมือนประโยคที่ประกอบด้วยคำนาม (ทรัพยากร) และคำกริยา (เมธอด HTTP):
GET
(วิธีการ) ชื่อผู้ใช้johnny
(ทรัพยากร)DELETE
(method) หนังสือที่มี id 1234
(ทรัพยากร)โดยทั่วไปปลายทางหมายถึงบริการ แต่ทรัพยากรอาจมีความหมายหลายอย่าง นี่คือตัวอย่างของทรัพยากรที่ขึ้นอยู่กับบริบทที่ใช้
สิ่งที่สามารถใช้เพื่อช่วยคุณ:
ห้องสมุดเป็นทรัพยากรที่มีค่าและเขามักจะใช้ประโยชน์จากมัน
ทรัพยากรเป็นสารธรรมชาติเช่นน้ำและไม้ที่มีคุณค่าในการดำรงชีวิต:
[pl] โลกมีทรัพยากร จำกัด และหากเราไม่รีไซเคิลเราจะใช้ให้หมด
ทรัพยากรก็เป็นของมีค่าเช่นเงินหรือสิ่งของที่คุณสามารถใช้ได้เมื่อคุณต้องการ:
[pl] รัฐบาลไม่มีทรัพยากรที่จะจ้างจำนวนครูที่ต้องการ
คำว่าทรัพยากรโดยคำจำกัดความมีความแตกต่างกันเล็กน้อย ทุกอย่างขึ้นอยู่กับบริบทที่ใช้
เงื่อนไข ทรัพยากรและปลายทางมักใช้เหมือนกัน แต่ในความเป็นจริงพวกเขาไม่ได้หมายถึงสิ่งเดียวกัน
จุดปลายคำมุ่งเน้นไปที่URLที่ใช้ในการร้องขอ
ระยะเวลาทรัพยากรมุ่งเน้นไปที่ชุดข้อมูลที่ส่งคืนโดยการร้องขอ
ตอนนี้ทรัพยากรเดียวกันสามารถเข้าถึงได้โดยจุดปลายที่แตกต่างกันหลายแห่ง
อีกทั้งยังปลายทางเดียวกันสามารถกลับทรัพยากรที่แตกต่างกันขึ้นอยู่กับสตริงแบบสอบถาม
ให้เราดูตัวอย่าง:
ดูที่ตัวอย่างต่อไปนี้ของจุดปลายที่แตกต่างกัน :
/api/companies/5/employees/3
/api/v2/companies/5/employees/3
/api/employees/3
เห็นได้ชัดว่าพวกเขาทุกคนสามารถเข้าถึงทรัพยากรเดียวกันได้ใน API ที่กำหนด
API ที่มีอยู่ยังสามารถเปลี่ยนแปลงได้อย่างสมบูรณ์ สิ่งนี้อาจนำไปสู่ปลายทางใหม่ที่จะเข้าถึงทรัพยากรเดิมโดยใช้ URL ใหม่และที่แตกต่างกันโดยสิ้นเชิง:
/api/employees/3
/new_api/staff/3
หากปลายทางของคุณส่งคืนคอลเล็กชันคุณสามารถใช้การค้นหา / การกรอง / การเรียงลำดับโดยใช้สตริงการสืบค้น ดังนั้น URL ต่อไปนี้จึงใช้จุดปลาย ( /api/companies
) เดียวกัน แต่สามารถส่งคืนทรัพยากรที่แตกต่างกัน (หรือการรวบรวมทรัพยากรซึ่งโดยนิยามคือทรัพยากรในตัวเอง):
/api/companies
/api/companies?sort=name_asc
/api/companies?location=germany
/api/companies?search=siemens
อาจเป็นไปได้ว่าฉันไม่ใช่คำตอบที่ดี แต่นี่จะไป
เนื่องจากทำงานกับ RESTful เว็บเซอร์วิสอย่างแท้จริงผ่าน HTTP ฉันพยายามคัดท้ายผู้คนให้ออกไปจากการใช้คำปลายทางเพราะมันไม่มีคำจำกัดความที่ชัดเจนและใช้ภาษาของ REST ซึ่งเป็นแหล่งทรัพยากรและที่ตั้งแทน
ในใจของฉันปลายทางคือคำศัพท์ TCP มันทำให้สับสนกับ HTTP เพราะส่วนหนึ่งของ URL ระบุเซิร์ฟเวอร์การฟัง
ดังนั้นทรัพยากรไม่ใช่คำใหม่ฉันไม่คิดว่าฉันคิดว่าปลายทางถูกยักยอกอยู่เสมอและเราตระหนักว่าเมื่อเราได้รับความสนใจจาก REST ในรูปแบบของ API
แก้ไข
ฉัน blogged เกี่ยวกับเรื่องนี้
https://medium.com/@lukepuplett/stop-saying-endpoints-92c19e33e819
ตามhttps://apiblueprint.org/documentation/examples/13-named-endpoints.htmlเป็นทรัพยากรที่เป็นสถานที่ที่ "ทั่วไป" ของการจัดเก็บของกิจการที่ได้รับ - เช่น / ลูกค้า / 30654 / คำสั่งขณะที่ปลายทางคือการกระทำที่เป็นรูปธรรม (วิธี HTTP) บนทรัพยากรที่กำหนด ดังนั้นหนึ่งทรัพยากรสามารถมีจุดปลายได้หลายจุด
พิจารณาเซิร์ฟเวอร์ที่มีข้อมูลของผู้ใช้ภารกิจและคะแนนสะสม
ที่มา: API Endpoints และทรัพยากร
1. คำอธิบายทรัพยากร “ ทรัพยากร” หมายถึงข้อมูลที่ส่งคืนโดย API
2. จุดสิ้นสุดและวิธีการจุดสิ้นสุดระบุวิธีที่คุณเข้าถึงทรัพยากรในขณะที่วิธีการระบุการโต้ตอบที่อนุญาต (เช่น GET, POST หรือ DELETE) กับทรัพยากร
ข้อมูลเพิ่มเติม: 3. พารามิเตอร์ พารามิเตอร์คือตัวเลือกที่คุณสามารถส่งผ่านไปยังจุดสิ้นสุด (เช่นการระบุรูปแบบการตอบกลับหรือจำนวนเงินที่ส่งคืน) เพื่อให้มีผลต่อการตอบกลับ
4. ตัวอย่าง คำขอตัวอย่างคำขอรวมคำขอตัวอย่างโดยใช้จุดปลายโดยแสดงพารามิเตอร์บางอย่างที่กำหนดค่า
5. ตัวอย่างการตอบกลับและสคีมา ตัวอย่างการตอบกลับแสดงตัวอย่างการตอบกลับจากตัวอย่างคำขอ สกีมาการตอบสนองกำหนดองค์ประกอบที่เป็นไปได้ทั้งหมดในการตอบสนอง
แหล่งที่มาของ การเชื่อมโยงข้อมูลอ้างอิง