Điểm cuối dịch vụ web là gì?


323

Giả sử dịch vụ web của tôi được đặt tại http://localhost:8080/foo/mywebservicevà WSDL của tôi hoạt động http://localhost:8080/foo/mywebservice?wsdl.

http://localhost:8080/foo/mywebservicemột điểm cuối, nghĩa là, nó giống như URI của dịch vụ web của tôi hay là nơi các thông báo SOAP nhận được và không được xử lý?

Bạn có thể vui lòng giải thích cho tôi nó là gì và mục đích của nó là gì?

Câu trả lời:


416

Đây là một câu trả lời ngắn hơn và hy vọng rõ ràng hơn ... Vâng, điểm cuối là URL nơi dịch vụ của bạn có thể được truy cập bởi một ứng dụng khách. Cùng một dịch vụ web có thể có nhiều điểm cuối, ví dụ để cung cấp dịch vụ này bằng các giao thức khác nhau.


8
@ user137717 Không, các trang web không phải là dịch vụ web. Một dịch vụ web chủ yếu được sử dụng bởi các ứng dụng, trong khi các trang web chủ yếu dành cho con người.
lbalazscs

4
@ user137717 Điểm cuối là URL nơi dịch vụ web của bạn có thể được truy cập bởi ứng dụng khách. Nếu bạn không hiểu dịch vụ web là gì, hãy đọc ví dụ này: stackoverflow.com/questions/226108/
Đổi

1
+1 từ tôi cũng vậy, và một câu hỏi: Tại sao không gọi nó (tức là "điểm cuối") là "URI cơ sở"? Có sự khác biệt cơ bản giữa "điểm cuối" và "URI cơ sở" không? Cảm ơn.
Giữ lại

1
@ Được bảo đảm Về mặt khái niệm, có một sự khác biệt giữa điểm cuối và địa chỉ của nó, nhưng trong thực tế thường là địa chỉ, vì thông thường bạn cần định cấu hình máy khách có "điểm cuối" để tìm dịch vụ.
lbalazscs

2
@lbalazscs - Địa chỉ IP: 8080 / foo / ShoppingWebservice / Đồ chơi , Địa chỉ IP: 8080 / foo / ShoppingWebservice / Books, v.v. - Phần / Đồ chơi, / Sách được gọi là gì? Chúng cũng được gọi là điểm cuối hoặc tài nguyên?
MasterJoe2

47

Câu trả lời cập nhật, từ Peter trong các bình luận:

Đây là "thuật ngữ cũ", sử dụng trực tiếp định nghĩa "endepoint" của WSDL2 (WSDL2 dịch "port" thành "endpoint").


Có thể bạn tìm thấy câu trả lời trong tài liệu này: http://www.w3.org/TR/wsdl.html

Tài liệu WSDL định nghĩa các dịch vụ là tập hợp các điểm cuối mạng hoặc cổng. Trong WSDL, định nghĩa trừu tượng về điểm cuối và thông báo được tách biệt khỏi các ràng buộc định dạng dữ liệu hoặc triển khai mạng cụ thể của chúng. Điều này cho phép sử dụng lại các định nghĩa trừu tượng: các thông điệp, là các mô tả trừu tượng về dữ liệu được trao đổi và các loại cổng là các bộ sưu tập hoạt động trừu tượng. Các đặc tả định dạng dữ liệu và giao thức cụ thể cho một loại cổng cụ thể cấu thành một ràng buộc có thể sử dụng lại. Một cổng được xác định bằng cách liên kết một địa chỉ mạng với một ràng buộc có thể sử dụng lại và một tập hợp các cổng xác định một dịch vụ. Do đó, tài liệu WSDL sử dụng các yếu tố sau trong định nghĩa dịch vụ mạng:

  • Các loại hình một bộ chứa cho định nghĩa kiểu dữ liệu bằng cách sử dụng một số hệ thống loại (chẳng hạn như XSD).
  • Tin nhắn là một định nghĩa trừu tượng, đánh máy của dữ liệu được truyền đạt.
  • Hoạt động, một mô tả trừu tượng về một hành động được hỗ trợ bởi dịch vụ.
  • Kiểu cổng Một tập hợp các hoạt động trừu tượng được hỗ trợ bởi một hoặc nhiều điểm cuối.
  • Liên kết với một giao thức cụ thể và đặc tả định dạng dữ liệu cho một loại cổng cụ thể.
  • Cổng cảng một điểm cuối duy nhất được xác định là sự kết hợp của một ràng buộc và địa chỉ mạng.
  • Dịch vụ là một bộ sưu tập các điểm cuối liên quan.

http://www.ehow.com/info_12212371_def định-service-endpoint.html

Điểm cuối là điểm kết nối nơi tệp HTML hoặc trang máy chủ hoạt động được hiển thị. Điểm cuối cung cấp thông tin cần thiết để giải quyết điểm cuối dịch vụ Web. Điểm cuối cung cấp một tham chiếu hoặc đặc tả được sử dụng để xác định một nhóm hoặc nhóm thuộc tính địa chỉ tin nhắn và đưa ra các đặc điểm thông báo từ đầu đến cuối, chẳng hạn như tham chiếu cho nguồn và đích của điểm cuối và nhận dạng thông báo để cho phép thống nhất giải quyết các tin nhắn "độc lập". Điểm cuối có thể là một thiết bị đầu cuối PC, PDA hoặc điểm bán hàng.


72
"Điểm cuối cung cấp thông tin cần thiết để giải quyết điểm cuối dịch vụ web." Phải yêu câu đó! : D
musaul

2
Đây là "thuật ngữ cũ", sử dụng trực tiếp định nghĩa "endepoint" của WSDL2 (WSDL2 dịch "port" thành "endpoint").
Peter Krauss

34

Điểm cuối dịch vụ web là URL khác chương trình sẽ sử dụng để liên lạc với chương trình của bạn. Để xem WSDL, bạn thêm ?wsdlvào URL điểm cuối dịch vụ web.

Dịch vụ web dành cho tương tác giữa chương trình với chương trình , trong khi các trang web dành cho tương tác giữa người với người .

Vậy: Điểm cuối là: http://www.blah.com/myproject/webservice/webmethod

Do đó, WSDL là: http://www.blah.com/myproject/webservice/webmethod?wsdl


Để mở rộng hơn nữa về các yếu tố của WSDL, tôi luôn thấy hữu ích khi so sánh chúng với mã:

Một WSDL có 2 phần (vật lý & trừu tượng).

Phần vật lý:

Định nghĩa - biến - ví dụ: myVar, x, y, v.v.

Các loại - kiểu dữ liệu - ví dụ: int, double, String, myObjectType

Hoạt động - phương thức / chức năng - ví dụ: myMethod (), myFunction (), v.v.

Thông báo - tham số đầu vào phương thức / hàm và kiểu trả về

  • ví dụ: công khai myObjectType myMethod ( Chuỗi myVar)

Porttypes - các lớp (tức là chúng là một thùng chứa cho các hoạt động) - ví dụ: MyClass {}, v.v.

Phần trừu tượng:

Binding - chúng kết nối với các porttypes và xác định giao thức được chọn để liên lạc với dịch vụ web này. - một giao thức là một hình thức giao tiếp (vì vậy văn bản / SMS, so với điện thoại so với email, v.v.).

Dịch vụ - danh sách này liệt kê địa chỉ nơi chương trình khác có thể tìm thấy dịch vụ web của bạn (tức là điểm cuối của bạn ).


5
Tôi thấy "Dịch vụ web dành cho tương tác giữa chương trình với chương trình, trong khi các trang web dành cho tương tác giữa người với người" là tuyên bố rất hữu ích để ngăn tôi khó hiểu "tại sao mọi người không gọi điểm cuối là URL"
Minnie

14

Trong các dự án trước đây tôi đã làm việc, điểm cuối là một tài sản tương đối. Điều đó có nghĩa là nó có thể hoặc không được thêm vào, nhưng nó luôn chứa protocol://host:port/partOfThePath.

Nếu dịch vụ được gọi có một phần động đối với nó, ví dụ: ?param=dynamicValue , thì phần đó sẽ được thêm vào điểm cuối. Nhưng nhiều lần điểm cuối có thể được sử dụng mà không cần phải sửa đổi.

Điều quan trọng cần hiểu là điểm cuối không phải là gì và nó giúp ích như thế nào. Ví dụ, một cách khác để truyền thông tin được lưu trữ trong một điểm cuối sẽ là lưu trữ các phần khác nhau của điểm cuối trong các thuộc tính riêng biệt. Ví dụ:

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

Hoặc nếu cùng một máy chủ và cổng trên nhiều dịch vụ:

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

Trong những trường hợp đó, URL đầy đủ sẽ cần được xây dựng trong mã của bạn như sau:

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

Trong hợp đồng, điều này có thể được lưu trữ như một điểm cuối như vậy

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

Và có nhiều lần chúng tôi đã lưu trữ điểm cuối lên đến và bao gồm cả '='. Điều này dẫn đến mã như thế này:

String url = serviceAEndpoint + dynamicValue;

Hy vọng rằng làm sáng tỏ một số.


7

Nói một cách đơn giản, điểm cuối là một đầu của kênh truyền thông. Khi một API tương tác với một hệ thống khác, các điểm tiếp xúc của giao tiếp này được coi là điểm cuối. Đối với API, điểm cuối có thể bao gồm URL của máy chủ hoặc dịch vụ. Mỗi điểm cuối là vị trí mà API có thể truy cập các tài nguyên mà chúng cần để thực hiện chức năng của chúng.

API hoạt động bằng cách sử dụng 'yêu cầu' và 'phản hồi.' Khi API yêu cầu thông tin từ ứng dụng web hoặc máy chủ web, nó sẽ nhận được phản hồi. Nơi API gửi yêu cầu và nơi tài nguyên sống, được gọi là điểm cuối.

Tham khảo: https://smartbear.com/learn/performance-monitoring/api-endpoint/


6

Điểm cuối được chỉ định là url tương đối hoặc tuyệt đối thường dẫn đến phản hồi. Phản hồi đó thường là kết quả của một quá trình phía máy chủ, ví dụ, có thể tạo ra một chuỗi JSON. Chuỗi đó sau đó có thể được sử dụng bởi ứng dụng thực hiện cuộc gọi đến điểm cuối. Vì vậy, trong các điểm cuối chung là các điểm truy cập được xác định trước, được sử dụng trong các mạng TCP / IP để bắt đầu một quy trình và / hoặc trả về phản hồi. Điểm cuối có thể chứa các tham số được truyền trong URL, như các cặp giá trị khóa, nhiều cặp giá trị khóa được phân tách bằng dấu và cho phép điểm cuối gọi, ví dụ, quá trình cập nhật / chèn; vì vậy các điểm cuối không phải lúc nào cũng cần trả về phản hồi, nhưng phản hồi luôn hữu ích, ngay cả khi đó chỉ là để chỉ sự thành công hay thất bại của một hoạt động.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.