웹 서비스 엔드 포인트 란 무엇입니까?


323

내 웹 서비스가 http://localhost:8080/foo/mywebservice있고 WSDL이에 있다고 가정 해 봅시다 http://localhost:8080/foo/mywebservice?wsdl.

http://localhost:8080/foo/mywebservice엔드 포인트, 즉, 그것은 SOAP 메시지를 수신하고, 비 정렬 화 내 웹 서비스의 URI 또는 동일은?

그것이 무엇이며 그 목적이 무엇인지 설명해 주시겠습니까?

답변:


416

더 짧고 희망적인 답변입니다 ... 예, 엔드 포인트는 클라이언트 응용 프로그램에서 서비스에 액세스 할 수있는 URL입니다. 예를 들어 서로 다른 프로토콜을 사용하여 사용하기 위해 동일한 웹 서비스에 여러 엔드 포인트가있을 수 있습니다.


8
@ user137717 아니요, 웹 사이트는 웹 서비스가 아닙니다. 웹 서비스는 주로 응용 프로그램에서 사용되는 반면 웹 사이트는 주로 사람을위한 것입니다.
lbalazscs

4
@ user137717 끝점은 클라이언트 응용 프로그램에서 웹 서비스에 액세스 할 수있는 URL입니다. 웹 서비스가 무엇인지 이해하지 못하는 경우 다음을 읽으십시오. stackoverflow.com/questions/226108/…
lbalazscs

1
나도 +1하고 질문 : 왜 그냥 "기본 URI"라고 부르지 않습니까 (예 : "종료점")? "엔드 포인트"와 "기본 URI"사이에는 근본적인 차이점이 있습니까? 감사.
원천 징수

1
@Withheld 개념적으로 엔드 포인트와 주소 사이에는 차이가 있지만 실제로는 일반적으로 서비스를 찾기 위해 "엔드 포인트"를 사용하여 클라이언트를 구성해야하기 때문에 일반적으로 주소가 의미됩니다.
lbalazscs

2
@lbalazscs- IP- 주소 : 8080 / foo / ShoppingWebservice / Toys , IP- 주소 : 8080 / foo / ShoppingWebservice / Books 등-/ Toys, / Books 부분이란 무엇입니까? 엔드 포인트 또는 리소스라고도합니까?
MasterJoe2

47

의견에서 Peter의 답변을 업데이트했습니다.

이것은 "오래된 용어"이며 WSDL2 "엔드 포인트" 정의 (WSDL2는 "포트"를 "엔드 포인트"로 변환)를 직접 사용하십시오.


이 문서에서 답을 찾을 수 있습니다 : http://www.w3.org/TR/wsdl.html

WSDL 문서는 서비스를 네트워크 엔드 포인트 또는 포트 모음으로 정의합니다. WSDL에서 엔드 포인트 및 메시지의 추상 정의는 구체적인 네트워크 배치 또는 데이터 형식 바인딩과 분리됩니다. 이를 통해 추상 정의를 재사용 할 수 있습니다. 메시지는 교환되는 데이터에 대한 추상 설명이며 포트 유형은 추상 조작 콜렉션입니다. 특정 포트 유형에 대한 구체적인 프로토콜 및 데이터 형식 사양은 재사용 가능한 바인딩을 구성합니다. 포트는 네트워크 주소를 재사용 가능한 바인딩과 연관시켜 정의되며 포트 콜렉션은 서비스를 정의합니다. 따라서 WSDL 문서는 네트워크 서비스 정의에서 다음 요소를 사용합니다.

  • 유형 – 일부 유형 시스템 (예 : XSD)을 사용하는 데이터 유형 정의를위한 컨테이너입니다.
  • 메시지 – 전달되는 데이터의 추상적이고 형식화 된 정의.
  • 작업 – 서비스가 지원하는 작업에 대한 추상적 인 설명.
  • 포트 유형 – 하나 이상의 엔드 포인트에서 지원하는 추상 작업 집합입니다.
  • 바인딩 – 특정 포트 유형에 대한 구체적인 프로토콜 및 데이터 형식 사양.
  • 포트 – 바인딩과 네트워크 주소의 조합으로 정의 된 단일 엔드 포인트입니다.
  • 서비스 – 관련 엔드 포인트 모음.

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

엔드 포인트는 HTML 파일 또는 활성 서버 페이지가 노출되는 연결 지점입니다. 엔드 포인트는 웹 서비스 엔드 포인트를 처리하는 데 필요한 정보를 제공합니다. 엔드 포인트는 메시지 주소 지정 속성 그룹 또는 제품군을 정의하고 엔드 포인트의 소스 및 대상에 대한 참조와 같은 엔드 투 엔드 메시지 특성을 제공하고 균일 한 메시지를 제공하는 데 사용되는 참조 또는 스펙을 제공합니다. "독립적 인"메시지 해결. 엔드 포인트는 PC, PDA 또는 POS 터미널 일 수 있습니다.


72
"엔드 포인트는 웹 서비스 엔드 포인트를 처리하는 데 필요한 정보를 제공합니다." 그 문장을 사랑해야 해요! : D
musaul

2
이것은 "오래된 용어"이며 WSDL2 "엔드 포인트" 정의 (WSDL2는 "포트"를 "엔드 포인트"로 변환)를 직접 사용하십시오.
피터 크라우스

34

웹 서비스 엔드 포인트는 다른 프로그램 이 프로그램과 통신하는 데 사용 하는 URL입니다 . WSDL을 보려면 ?wsdl웹 서비스 엔드 포인트 URL에 추가하십시오 .

웹 서비스는 프로그램 간 상호 작용을위한 것이고 웹 페이지는 프로그램 간 상호 작용을위한 것입니다.

엔드 포인트는 다음과 같습니다. http://www.blah.com/myproject/webservice/webmethod

따라서 WSDL은 다음과 같습니다. http://www.blah.com/myproject/webservice/webmethod?wsdl


WSDL의 요소를 더욱 확장하기 위해 항상 코드와 비교하는 것이 도움이된다는 것을 알게되었습니다.

WSDL에는 두 부분 (물리적 및 추상)이 있습니다.

물리적 부분 :

정의-변수-ex : myVar, x, y 등

유형-데이터 유형-예 : int, double, String, myObjectType

연산-메소드 / 함수-예 : myMethod (), myFunction () 등

메시지-메소드 / 함수 입력 매개 변수 및 리턴 유형

  • 예 : 공개 myObjectType myMethod ( 문자열 myVar)

포트 타입-클래스 (즉, 오퍼레이션을위한 컨테이너)-예 : MyClass {} 등

초록 부분 :

바인딩-포트 유형에 연결하고이 웹 서비스와 통신하기 위해 선택한 프로토콜을 정의합니다. -프로토콜은 통신 형태입니다 (따라서 문자 / SMS, 전화 대 이메일 등).

서비스-다른 프로그램이 웹 서비스 (예 : 엔드 포인트 )를 찾을 수있는 주소를 나열합니다 .


5
나는 "도대체 사람들은 URL로 엔드 포인트를 호출하지 왜"나에게 수수께끼 중지 매우 유용 문은 "웹 서비스는 웹 페이지 프로그램 - 투 - 인간의 상호 작용을하는 동안, 프로그램 간 상호 작용을위한"발견
미니

14

과거에 작업 한 프로젝트에서 엔드 포인트는 상대적 속성이었습니다. 즉, 추가되었거나 추가되지 않았을 수도 있지만 항상 포함되어 protocol://host:port/partOfThePath있습니다.

호출되는 서비스에 동적 파트 (예 : a ?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

엔드 포인트는 일반적으로 응답을 생성하는 상대 또는 절대 URL로 지정됩니다. 이 응답은 일반적으로 예를 들어 JSON 문자열을 생성 할 수있는 서버 측 프로세스의 결과입니다. 그런 다음 엔드 포인트를 호출 한 애플리케이션이 해당 문자열을 사용할 수 있습니다. 따라서 일반적으로 엔드 포인트는 프로세스를 시작하거나 응답을 리턴하기 위해 TCP / IP 네트워크 내에서 사용되는 사전 정의 된 액세스 포인트입니다. 엔드 포인트는 키 값 쌍으로 URL 내에 전달 된 매개 변수를 포함 할 수 있으며 여러 키 값 쌍은 앰퍼샌드로 구분되어 엔드 포인트가 예를 들어 업데이트 / 삽입 프로세스를 호출 할 수 있도록합니다. 따라서 엔드 포인트가 항상 응답을 리턴 할 필요는 없지만 조작의 성공 또는 실패를 표시하는 경우에도 응답은 항상 유용합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.