จุดสิ้นสุดคืออะไร


172

ฉันอ่านเกี่ยวกับ OAuth แล้วและมันยังพูดถึงจุดสิ้นสุด จุดสิ้นสุดคืออะไร?


2
ฉันสะดุดกับโพสต์เก่า ๆ เช่นนี้และไม่เข้าใจว่าทำไมโพสต์ประเภทนี้มักถูกโพสต์ในอดีต แต่มันจะถูกทุบและลดลงอย่างแน่นอนหากนี่เป็นการโพสต์ปัจจุบัน
tnkh

6
อาจจะถูกโหวตเพราะมันเป็นคำถามที่คนอื่นมีเช่นกัน นั่นไม่ใช่ประเด็นหรือ
Nora McDougall-Collins

คำตอบ:


74

คำตอบทั้งหมดที่โพสต์นั้นถูกต้องแล้วจุดปลายคือปลายด้านหนึ่งของช่องทางการสื่อสาร ในกรณีของ OAuth มีจุดปลายสามจุดที่คุณต้องเกี่ยวข้อง:

  1. URI คำขอข้อมูลรับรองชั่วคราว (เรียกว่า URL คำขอโทเค็นในข้อมูลจำเพาะชุมชน OAuth 1.0a) นี่คือ URI ที่คุณส่งคำขอไปเพื่อรับโทเค็นคำขอที่ไม่ได้รับอนุญาตจากเซิร์ฟเวอร์ / ผู้ให้บริการ
  2. URI ของเจ้าของทรัพยากรการอนุญาต (เรียกว่า URL การอนุญาตผู้ใช้ในข้อมูลจำเพาะชุมชน OAuth 1.0a) นี่คือ URI ที่คุณนำผู้ใช้ไปยังเพื่ออนุญาตโทเค็นคำขอที่ได้รับจาก URI คำขอข้อมูลรับรองชั่วคราว
  3. Token Request URI (เรียกว่า Access Token URL ในข้อมูลจำเพาะชุมชน OAuth 1.0a) นี่คือ URI ที่คุณส่งการร้องขอเพื่อแลกเปลี่ยน Token คำขอที่ได้รับอนุญาตสำหรับโทเค็นการเข้าใช้ซึ่งสามารถใช้เพื่อรับการเข้าถึงทรัพยากรที่ได้รับการคุ้มครอง

หวังว่าจะช่วยให้สิ่งต่าง ๆ ชัดเจนขึ้น ขอให้สนุกกับการเรียนรู้เกี่ยวกับ OAuth! โพสต์คำถามเพิ่มเติมหากคุณพบปัญหาในการใช้งานไคลเอ็นต์ OAuth


5
ทำไมไม่เรียกมันว่า (endpoint) ซึ่งเป็น "base URI" มีความแตกต่างพื้นฐานระหว่าง "จุดปลาย" และ "ฐาน URI" หรือไม่? ขอบคุณ
ระงับ

@Xlsx มันขึ้นอยู่กับการใช้งาน คำขอตัวอย่างสามารถไปที่ GET "/ users? name = admin" หรือ "/ users / admin" คุณสามารถทำอย่างใดอย่างหนึ่งหรืออื่น ๆ หรือทั้งสองอย่างหรือไม่
Burak

2
ไม่มีประโยชน์เนื่องจาก OP ขอให้ "จุดปลายทั่วไป" ไม่ใช่ OAuth โดยเฉพาะ ตอนนี้ฉันสับสน
รุ่งอรุณ

312

Come on guys :) เราสามารถทำได้ง่ายขึ้นโดยตัวอย่าง:

/this-is-an-endpoint
/another/endpoint
/some/other/endpoint
/login
/accounts
/cart/items

และเมื่ออยู่ภายใต้โดเมนมันจะมีลักษณะดังนี้:

https://example.com/this-is-an-endpoint
https://example.com/another/endpoint
https://example.com/some/other/endpoint
https://example.com/login
https://example.com/accounts
https://example.com/cart/items

สามารถเป็น http หรือ https เราใช้ https ในตัวอย่าง

จุดปลายอาจแตกต่างกันสำหรับวิธี HTTP ที่แตกต่างกันเช่น:

GET /item/{id}
PUT /item/{id}

จะเป็นสองจุดสิ้นสุดที่แตกต่างกัน - หนึ่งสำหรับR etrieving (ในขณะที่ "C Rอู" ย่อ) และอื่น ๆ สำหรับยู pdating (ในขณะที่ "CR U d")

และนั่นคือทั้งหมดที่ง่ายจริงๆ!


25
Upvoted สำหรับการกล่าวถึงว่าวิธีการ HTTP ที่แตกต่างกันกำหนดจุดสิ้นสุดแยกต่างหาก
Boyan Kushlev

4
Matthew 20:16 KJV - ดังนั้นคนสุดท้ายจะเป็นคนแรก (.. ) :)
sobi3ch

2
มันแย่เกินไป Stack Exchange ไม่แสดงคำตอบนี้เป็นคำตอบแรกหรือคำตอบที่สอง สำหรับฉันมันเป็นรายการที่แย่ที่สุดและแน่นอนที่สุดเพราะฉันไม่รู้ว่าการกระทำและคอนโทรลเลอร์ทั้งหมดเป็นจุดสิ้นสุดหรือการกระทำเดี่ยวในคอนโทรลเลอร์เดียวกำหนดปลายทาง คำตอบนี้บอกฉันว่ามันเป็นแบบหลัง
Thorkil Værge

โชคไม่ดีที่ OP ไม่ได้เลือกคำตอบนี้ซึ่งเป็นคำตอบที่ดีที่สุด

1
@Parth จุดสิ้นสุดโดยทั่วไปคือสิ่งที่ควรจะถูกเรียกโดยคำขอสิ่งที่คุณให้ไว้เป็นส่วนต่อประสานกับผู้ใช้ API ของคุณ - สิ่งที่คุณบอกให้ใช้ ดังนั้นในตัวอย่างนี้การใช้งานของคุณจัดการกับจุดปลายสองจุด (เพราะคุณให้ผู้บริโภค / ผู้ใช้ API ของคุณมีสองวิธีในการโทรหาบางสิ่ง) แต่ฉันเพิ่งเขียนว่ามันเป็น "โดยทั่วไป" และถ้ามีบางคนที่ยืนยันในการโทรหาจุดปลายที่แตกต่างกันเล็กน้อย (เช่นในตัวอย่างของคุณบางคนจะยืนกรานที่จะบอกว่านี่คือจุดปลายทางหนึ่ง) จากนั้นคุณพูดว่า ! คำพูดเพียงแค่ผมพอมีความสุขที่เราก็เข้าใจซึ่งกันและกัน"
Tomeg

43

เป็นปลายด้านหนึ่งของช่องทางการสื่อสารดังนั้นบ่อยครั้งที่สิ่งนี้จะแสดงเป็น URL ของเซิร์ฟเวอร์หรือบริการ



12

ปลายทางในภาษารับรองความถูกต้องของ OpenID เป็น URL ที่คุณส่ง (POST) คำขอการตรวจสอบความถูกต้อง

ข้อความที่ตัดตอนมาจากAPI การตรวจสอบสิทธิ์ของ Google

ในการรับปลายทางของ Google OpenID ดำเนินการค้นหาโดยส่งคำขอ GET หรือ HEAD HTTP ไปที่https://www.google.com/accounts/o8/id https://www.google.com/accounts/o8/idเมื่อใช้ GET เราขอแนะนำให้ตั้งค่าส่วนหัวยอมรับเป็น "application / xrds + xml" Google ส่งคืนเอกสาร XRDS ที่มี URL ปลายทางของผู้ให้บริการ OpenID ที่อยู่ปลายทางมีการเพิ่มความคิดเห็นเป็น:

<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/server</Type> 
<URI>{Google's login endpoint URI}</URI> 
</Service>

เมื่อคุณได้รับจุดสิ้นสุดของ Google แล้วคุณสามารถส่งคำขอการตรวจสอบสิทธิ์ไปยังมันโดยระบุพารามิเตอร์ที่เหมาะสม (มีให้ที่หน้าลิงก์) คุณเชื่อมต่อกับจุดสิ้นสุดโดยส่งการร้องขอไปยัง URL หรือทำการร้องขอ HTTP POST


7

จุดปลายคือ 'จุดเชื่อมต่อ' ของบริการเครื่องมือหรือแอปพลิเคชันที่เข้าถึงได้ผ่านเครือข่าย ในโลกของซอฟต์แวร์แอปพลิเคชันซอฟต์แวร์ใด ๆ ที่ทำงานอยู่และ "กำลังฟัง" สำหรับการเชื่อมต่อจะใช้จุดปลายเป็น "ประตูหน้า" เมื่อคุณต้องการเชื่อมต่อกับแอพพลิเคชัน / บริการ / เครื่องมือเพื่อแลกเปลี่ยนข้อมูลที่คุณเชื่อมต่อกับจุดปลาย


4

เริ่มใช้คำว่า Endpoint สำหรับบริการ WCF ต่อมาแม้ว่าคำนี้จะถูกนำมาใช้คำพ้องกับทรัพยากร API, REST แนะนำให้เรียก URI เหล่านี้ (URI [s] ที่เข้าใจคำกริยา HTTP และติดตามสถาปัตยกรรม REST) ​​เป็น "ทรัพยากร"

โดยสรุปแล้ว Resource หรือ Endpoint เป็นจุดเข้าใช้งานของแอปพลิเคชั่นที่โฮสต์จากระยะไกลซึ่งช่วยให้ผู้ใช้สื่อสารกับมันผ่านโปรโตคอล HTTP


4

การลงคะแนนไม่เกี่ยวข้องกับฉัน แต่แหล่งที่มา (: แม้จะไม่มีเหตุผลที่ระบุไว้สำหรับสิ่งนั้น


แต่ละจุดปลายคือที่ตั้งที่ API สามารถเข้าถึงทรัพยากรที่พวกเขาต้องการเพื่อทำหน้าที่ของตน นั่นคือสถานที่ที่ API ส่งคำขอและที่ที่ทรัพยากรใช้งานอยู่เรียกว่าจุดปลาย

จากแหล่งที่ดี


2

จุดสิ้นสุดของคำนั้นคือ URL ที่เน้นการสร้างคำขอ ลองดูตัวอย่างต่อไปนี้จากจุดต่างๆ:

/api/groups/6/workings/1
/api/v2/groups/5/workings/2
/api/workings/3

พวกเขาสามารถเข้าถึงแหล่งเดียวกันได้อย่างชัดเจนใน API ที่กำหนด


1

คำตอบสั้น ๆ : "จุดปลายคือสิ่งที่เป็นนามธรรมซึ่งจำลองจุดสิ้นสุดของช่องข้อความซึ่งระบบสามารถส่งหรือรับข้อความ" ( Ibsen, 2010 )


Endpoint vs URI (แก้ความกำกวม)

จุดสิ้นสุดไม่เหมือนกับ URI เหตุผลหนึ่งคือเนื่องจาก URI สามารถขับไปยังจุดสิ้นสุดที่แตกต่างกันเช่นจุดปลายไปยัง GET, อีกจุดหนึ่งไปยัง POST และอื่น ๆ ตัวอย่าง:

@GET /api/agents/{agent_id} //Returns data from the agent identified by *agent_id*
@PUT /api/agents/{agent_id} //Update data of the agent identified by *agent_id*

จุดสิ้นสุดเทียบกับทรัพยากร (แก้ความกำกวม)

จุดสิ้นสุดไม่เหมือนกับทรัพยากร เหตุผลหนึ่งก็คือเพราะปลายทางที่แตกต่างกันสามารถขับรถไปยังทรัพยากรเดียวกัน ตัวอย่าง:

@GET /api/agents/{agent_id} @Produces("application/xml") //Returns data in XML format
@GET /api/agents/{agent_id} @Produces("application/json") //Returns data in JSON format

0

พูดง่ายๆปลายทางคือปลายด้านหนึ่งของช่องทางการสื่อสาร เมื่อ API โต้ตอบกับระบบอื่นจุดสัมผัสของการสื่อสารนี้ถือเป็นจุดสิ้นสุด สำหรับ API ปลายทางอาจมี URL ของเซิร์ฟเวอร์หรือบริการ แต่ละจุดปลายคือที่ตั้งที่ API สามารถเข้าถึงทรัพยากรที่พวกเขาต้องการเพื่อทำหน้าที่ของตน

API ทำงานโดยใช้ 'คำขอ' และ 'คำตอบ' เมื่อ API ร้องขอข้อมูลจากเว็บแอปพลิเคชันหรือเว็บเซิร์ฟเวอร์ก็จะได้รับการตอบกลับ สถานที่ที่ API ส่งคำขอและที่ที่ทรัพยากรใช้งานอยู่เรียกว่าจุดปลาย

อ่านเพิ่มเติม...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.