จุดสิ้นสุดของบริการเว็บคืออะไร


323

สมมติว่าบริการเว็บของฉันตั้งอยู่ที่http://localhost:8080/foo/mywebserviceและ WSDL http://localhost:8080/foo/mywebservice?wsdlของฉันอยู่ที่

คือhttp://localhost:8080/foo/mywebserviceปลายทางคือมันเป็นเช่นเดียวกับ URI ของบริการเว็บของฉันหรือที่ข้อความ SOAP ที่ได้รับและ unmarshalled?

คุณช่วยอธิบายให้ฉันฟังหน่อยว่ามันคืออะไรและมันมีจุดประสงค์อะไร?

คำตอบ:


416

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


8
@ user137717 ไม่เว็บไซต์ไม่ใช่บริการบนเว็บ แอปพลิเคชันใช้บริการเว็บเป็นหลักในขณะที่เว็บไซต์มีไว้สำหรับมนุษย์เป็นหลัก
lbalazscs

4
@ user137717 ปลายทางคือ URL ที่เว็บเซอร์วิสของคุณสามารถเข้าถึงได้โดยแอปพลิเคชันไคลเอนต์ หากคุณไม่เข้าใจว่าบริการเว็บคืออะไรให้อ่านตัวอย่างนี้: stackoverflow.com/questions/226108/…
lbalazscs

1
+1 จากฉันด้วยและคำถาม: ทำไมไม่เรียกเพียงแค่นั้น (เช่นที่เรียกว่า "ปลายทาง") "base URI" มีความแตกต่างพื้นฐานระหว่าง "จุดปลาย" และ "ฐาน URI" หรือไม่? ขอบคุณ
ระงับ

1
@ เข้าใจแนวคิดมีความแตกต่างระหว่างปลายทางและที่อยู่ของมัน แต่โดยทั่วไปแล้วที่อยู่จะหมายถึงที่อยู่เพราะโดยทั่วไปแล้วคุณต้องกำหนดค่าไคลเอนต์ที่มี "ปลายทาง" เพื่อค้นหาบริการ
lbalazscs

2
@lbalazscs - ที่อยู่ IP: 8080 / foo / ShoppingWebservice / ของเล่น , ที่อยู่ IP: 8080 / foo / ShoppingWebservice / หนังสือเป็นต้น - ชิ้นส่วน / ของเล่น / หนังสือคืออะไร พวกเขายังเรียกว่าจุดปลายหรือทรัพยากร?
MasterJoe2

47

อัปเดตคำตอบจากปีเตอร์ในความคิดเห็น:

นี่คือ "คำศัพท์เก่า" ใช้คำนิยาม "endepoint" ของ WSDL2 โดยตรง (WSDL2 แปล "พอร์ต" เป็น "ปลายทาง")


บางทีคุณอาจพบคำตอบในเอกสารนี้: http://www.w3.org/TR/wsdl.html

เอกสาร WSDL กำหนดบริการเป็นชุดของจุดปลายเครือข่ายหรือพอร์ต ใน WSDL นิยามแบบนามธรรมของจุดปลายและข้อความจะถูกแยกออกจากการปรับใช้เครือข่ายที่เป็นรูปธรรมหรือการเชื่อมรูปแบบข้อมูล สิ่งนี้อนุญาตให้นำคำจำกัดความที่เป็นนามธรรมกลับมาใช้ใหม่: ข้อความซึ่งเป็นคำอธิบายเชิงนามธรรมของข้อมูลที่ถูกแลกเปลี่ยนและประเภทพอร์ตซึ่งเป็นคอลเลกชันที่เป็นนามธรรมของการดำเนินการ โปรโตคอลรูปแบบข้อมูลจำเพาะและรูปแบบข้อมูลที่เป็นรูปธรรมสำหรับชนิดพอร์ตเฉพาะนั้นมีผลผูกพันที่นำมาใช้ซ้ำได้ พอร์ตถูกกำหนดโดยเชื่อมโยงที่อยู่เครือข่ายกับการเชื่อมซ้ำที่ใช้ซ้ำได้และการรวบรวมพอร์ตกำหนดบริการ ดังนั้นเอกสาร WSDL ใช้องค์ประกอบต่อไปนี้ในคำนิยามของบริการเครือข่าย:

  • Types— คอนเทนเนอร์สำหรับนิยามชนิดข้อมูลโดยใช้ระบบชนิดบางอย่าง (เช่น XSD)
  • ข้อความ - คำจำกัดความที่เป็นนามธรรมพิมพ์ของข้อมูลที่กำลังสื่อสาร
  • การทำงาน - คำอธิบายที่เป็นนามธรรมของการกระทำที่สนับสนุนโดยบริการ
  • Port Type - ชุดการดำเนินการที่เป็นนามธรรมซึ่งสนับสนุนโดยจุดปลายหนึ่งจุดหรือมากกว่า
  • การผูก - โปรโตคอลที่เป็นรูปธรรมและข้อกำหนดรูปแบบข้อมูลสำหรับประเภทพอร์ตเฉพาะ
  • พอร์ต - ปลายทางเดียวที่กำหนดไว้เป็นการรวมกันของการรวมและที่อยู่เครือข่าย
  • บริการ - การรวบรวมปลายทางที่เกี่ยวข้อง

http://www.ehow.com/info_12212371_definition-service-endpoint.html

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


72
"จุดสิ้นสุดให้ข้อมูลที่จำเป็นสำหรับการระบุจุดปลายบริการเว็บ" ต้องรักประโยคนั้น! : D
Musaul

2
นี่คือ "คำศัพท์เก่า" ใช้คำนิยาม "endepoint" ของ WSDL2 โดยตรง (WSDL2 แปล "พอร์ต" เป็น "ปลายทาง")
Peter Krauss

34

จุดบริการเว็บคือ URL ที่โปรแกรมอื่นจะใช้เพื่อสื่อสารกับโปรแกรมของคุณ หากต้องการดู WSDL คุณ?wsdlต้องเพิ่มURL ปลายทางของบริการบนเว็บ

บริการเว็บมีไว้สำหรับการโต้ตอบระหว่างโปรแกรมกับโปรแกรมในขณะที่เว็บเพจสำหรับการโต้ตอบระหว่างโปรแกรมกับมนุษย์

ดังนั้น: ปลายทางคือ: http://www.blah.com/myproject/webservice/webmethod

ดังนั้น WSDL คือ: http://www.blah.com/myproject/webservice/webmethod?wsdl


เพื่อขยายเพิ่มเติมเกี่ยวกับองค์ประกอบของ WSDL ฉันมักจะเป็นประโยชน์ในการเปรียบเทียบพวกเขากับรหัส:

WSDL มี 2 ส่วน (ทางกายภาพและนามธรรม)

สัดส่วนทางกายภาพ:

คำจำกัดความ - ตัวแปร - อดีต: myVar, x, y, ฯลฯ

ประเภท - ประเภทข้อมูล - อดีต: int, double, String, myObjectType

การดำเนินการ - วิธีการ / ฟังก์ชั่น - เช่น: myMethod (), myFunction () ฯลฯ

ข้อความ - พารามิเตอร์วิธีการ / ฟังก์ชั่นและประเภทการส่งคืน

  • เช่นmyObjectTypeสาธารณะmyMethod ( String myVar)

Porttypes - คลาส (เช่นเป็นคอนเทนเนอร์สำหรับการดำเนินการ) - เช่น MyClass {} เป็นต้น

บทคัดย่อส่วน:

การเชื่อม - สิ่งเหล่านี้เชื่อมต่อกับพอร์ตและกำหนดโปรโตคอลที่เลือกสำหรับการสื่อสารกับบริการเว็บนี้ - โปรโตคอลเป็นรูปแบบของการสื่อสาร (เช่นข้อความ / SMS กับโทรศัพท์กับอีเมล ฯลฯ )

บริการ - นี่คือรายการที่อยู่ที่โปรแกรมอื่นสามารถค้นหาบริการเว็บของคุณ (เช่นปลายทางของคุณ)


5
ผมพบว่า "บริการเว็บมีการปฏิสัมพันธ์โปรแกรมโปรแกรมการทำงานในขณะที่หน้าเว็บสำหรับโปรแกรมสู่มนุษย์มีปฏิสัมพันธ์" เป็นคำสั่งที่มีประโยชน์มากที่จะหยุดฉันงง "ทำไมนรกจะไม่เพียงแค่คนโทรหาจุดสิ้นสุดเป็น URL"
มินนี่

14

ในโครงการที่ผ่านมาที่ฉันทำงานอยู่จุดสิ้นสุดคือคุณสมบัติที่เกี่ยวข้อง นั่นคือจะบอกว่ามันอาจจะหรืออาจจะไม่ได้รับการผนวกเข้ากับ protocol://host:port/partOfThePathแต่มันก็มีอยู่

หากบริการที่ถูกเรียกมีส่วนที่เป็นพลวัตของมันตัวอย่างเช่นก?param=dynamicValueส่วนนั้นจะถูกเพิ่มเข้ากับจุดสิ้นสุด แต่หลายครั้งอุปกรณ์ปลายทางสามารถใช้งานได้โดยไม่ต้องมีการแก้ไข

สิ่งสำคัญที่ต้องเข้าใจคือสิ่งที่อุปกรณ์ปลายทางไม่ได้เป็นและช่วยได้อย่างไร ตัวอย่างเช่นทางเลือกในการส่งผ่านข้อมูลที่เก็บไว้ในจุดสิ้นสุดคือการจัดเก็บส่วนต่าง ๆ ของจุดสิ้นสุดในคุณสมบัติแยกต่างหาก ตัวอย่างเช่น:

hostForServiceA=someIp
portForServiceA=8080
pathForServiceA=/some/service/path
hostForServiceB=someIp
portForServiceB=8080
pathForServiceB=/some/service/path

หรือถ้าโฮสต์และพอร์ตเดียวกันข้ามบริการหลายรายการ:

host=someIp
port=8080
pathForServiceA=/some/service/path
pathForServiceB=/some/service/path

ในกรณีเหล่านั้น URL แบบเต็มจะต้องถูกสร้างขึ้นในรหัสของคุณเช่น:

String url = "http://" + host + ":" + port + pathForServiceA  + "?" + dynamicParam + "=" + dynamicValue;

ในสัญญานี้สามารถจัดเก็บเป็นปลายทางเช่นนี้

serviceAEndpoint=http://host:port/some/service/path?dynamicParam=

และใช่หลาย ๆ ครั้งที่เราเก็บปลายทางไว้และรวมถึง '=' รหัสนี้นำไปสู่เช่นนี้:

String url = serviceAEndpoint + dynamicValue;

หวังว่าแสงจะหายไป


7

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

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

การอ้างอิง: https://smartbear.com/learn/performance-monitoring/api-endpoints/


6

Endpoint ถูกระบุเป็นญาติหรือ url สัมบูรณ์ที่มักส่งผลให้เกิดการตอบสนอง การตอบสนองนั้นมักเป็นผลมาจากกระบวนการฝั่งเซิร์ฟเวอร์ที่สามารถผลิตสตริง JSON สตริงนั้นสามารถถูกใช้โดยแอปพลิเคชันที่ทำการเรียกไปยังปลายทาง ดังนั้นในจุดสิ้นสุดทั่วไปคือจุดเชื่อมต่อที่กำหนดไว้ล่วงหน้าซึ่งใช้ภายในเครือข่าย TCP / IP เพื่อเริ่มต้นกระบวนการและ / หรือส่งคืนการตอบกลับ ปลายทางอาจมีพารามิเตอร์ที่ส่งผ่านภายใน URL เนื่องจากคู่ของค่าคีย์คู่ของค่าคีย์หลายคู่ถูกคั่นด้วยเครื่องหมายและอนุญาตให้ปลายทางโทรเช่นกระบวนการอัพเดต / แทรก ดังนั้นจุดสิ้นสุดไม่จำเป็นต้องส่งคืนการตอบกลับเสมอไป แต่การตอบกลับมีประโยชน์เสมอแม้ว่ามันจะเป็นเพียงการระบุความสำเร็จหรือความล้มเหลวของการดำเนินการ


0

ปลายทางคือ URL สำหรับเว็บ service.And ปลายทางยังเป็นกระจาย API

วัตถุง่าย Access Protocol (SOAP) ปลายทางคือ URL โดยจะระบุตำแหน่งบนในตัวบริการ HTTP ที่บริการเว็บฟังฟังการร้องขอเข้ามา

การอ้างอิง: https://www.ibm.com/support/knowledgecenter/SSSHYH_7.1.0.4/com.ibm.netcoolimpact.doc/dsa/imdsa_web_netcool_impact_soap_endpoint_c.html

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