web-dev-qa-db-ja.com

Webサービスのエンドポイントとは何ですか?

私のWebサービスがhttp://localhost:8080/foo/mywebserviceにあり、私のWSDLがhttp://localhost:8080/foo/mywebservice?wsdlにあるとしましょう。

http://localhost:8080/foo/mywebserviceはエンドポイントですか?つまり、それは私のWebサービスのURIと同じか、それともSOAPメッセージが受信されて非整列化された場所ですか?

それが何であるか、またその目的は何ですか。私に説明してください。

293
karakays

これはもっと短く、そしてより明確な答えです...はい、エンドポイントはあなたのサービスがクライアントアプリケーションによってアクセスされることができるURLです。たとえば、異なるプロトコルを使用して利用可能にするために、同じWebサービスに複数のエンドポイントを含めることができます。

391
lbalazscs

コメントで、Peterからの回答を更新しました。

これは "古い用語"です。 WSDL2 "endepoint"定義 (WSDL2は "port"から "endpoint"に変換)を直接使用してください。


多分あなたはこの文書の中に答えを見つける: http://www.w3.org/TR/wsdl.html

WSDLドキュメントは、サービスをネットワークエンドポイントの集まり、つまりポートとして定義します。 WSDLでは、エンドポイントとメッセージの抽象的な定義は、それらの具体的なネットワーク配置やデータ形式のバインディングとは分離されています。これは抽象的な定義の再利用を許します:交換されているデータの抽象的な記述であるメッセージと操作の抽象的な集合であるポートタイプ。特定のポートタイプの具体的なプロトコルとデータフォーマットの仕様は、再利用可能なバインディングを構成します。ポートは、ネットワークアドレスを再利用可能なバインディングに関連付けることによって定義され、ポートの集まりによってサービスが定義されます。したがって、WSDL文書はネットワークサービスの定義に次の要素を使用します。

  • 型 - 何らかの型システム(XSDなど)を使用したデータ型定義のためのコンテナ。
  • メッセージ - 伝達されるデータの抽象的な型定義。
  • 操作 - サービスによってサポートされているアクションの抽象的な説明。
  • ポートタイプ - 1つ以上のエンドポイントでサポートされている一連の抽象的な操作。
  • バインディング - 特定のポートタイプの具体的なプロトコルとデータフォーマットの仕様。
  • ポート - バインディングとネットワークアドレスの組み合わせとして定義された単一のエンドポイント。
  • サービス - 関連するエンドポイントの集まり。

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

エンドポイントは、HTMLファイルまたはアクティブなサーバーページが公開される接続ポイントです。エンドポイントは、Webサービスのエンドポイントに対処するために必要な情報を提供します。エンドポイントは、メッセージアドレッシングプロパティのグループまたはファミリーを定義し、エンドポイントの送信元と宛先の参照、および統一を可能にするメッセージのIDなど、エンドツーエンドのメッセージ特性を与えるために使用される参照または仕様を提供します「独立した」メッセージのアドレス指定エンドポイントは、PC、PDA、またはPOS端末にすることができます。

45
Julien

Webサービスのエンドポイントは、他の program があなたのプログラムと通信するために使うURLです。 WSDLを表示するには、WebサービスのエンドポイントURLに?wsdlを追加します。

Webサービスは プログラム間 インタラクション用であり、Webページは プログラム - 人間 インタラクション用です。

だから:エンドポイントは: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()など.

メッセージ - メソッド/関数の入力パラメータと戻り値の型

  • 例:public myObjectType myMethod( 文字列 myVar)

ポートタイプ - クラス(すなわち、それらは操作のためのコンテナです) - 例:MyClass {}など.

抽象部分:

バインド - これらはポートタイプに接続し、このWebサービスと通信するために選択されたプロトコルを定義します。 - プロトコルはコミュニケーションの形式です(つまりテキスト/ SMS、電話対電子メールなど)。

サービス - これは他のプログラムがあなたのウェブサービスを見つけることができるアドレスをリストします(すなわちあなたの エンドポイント )。

30
specialk1st

私が取り組んだ過去のプロジェクトでは、エンドポイントは相対的なものでした。つまり、追加されていてもいなくても構いませんが、常に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;

いくつかの光を当てることを願っています。

13
Jose Martinez

端的に言うと、エンドポイントは通信チャネルの一端です。 APIが他のシステムと対話するとき、この通信の接点はエンドポイントと見なされます。 APIの場合、エンドポイントにはサーバーまたはサービスのURLを含めることができます。各エンドポイントは、APIが機能を実行するために必要なリソースにアクセスできる場所です。

APIは「リクエスト」と「レスポンス」を使って動作します。APIがWebアプリケーションまたはWebサーバーから情報をリクエストすると、レスポンスを受け取ります。 APIがリクエストを送信し、リソースが存在する場所はエンドポイントと呼ばれます。

参照先: https://smartbear.com/learn/performance-monitoring/api-endpoints/

3
Satya

エンドポイントは、通常は応答となる相対URLまたは絶対URLとして指定されます。その応答は通常、たとえばJSON文字列を生成する可能性があるサーバーサイドプロセスの結果です。その文字列は、エンドポイントへの呼び出しを行ったアプリケーションによって消費される可能性があります。そのため、一般的にエンドポイントとは、TCP/IPネットワーク内でプロセスを開始したり応答を返すために使用される、定義済みのアクセスポイントです。エンドポイントにはURL内で渡されるパラメータを含めることができます。キーと値のペアとして、複数のキーと値のペアがアンパサンドで区切られているため、エンドポイントからの更新や挿入処理などが可能です。そのため、エンドポイントは必ずしも応答を返す必要はありませんが、操作の成功または失敗を示すだけの場合でも、応答は常に有用です。

1
Martyn Wynn