In früheren Projekten, an denen ich gearbeitet habe, war der Endpunkt eine relative Eigenschaft. Das heißt, es kann angehängt worden sein oder nicht, aber es enthielt immer das protocol://host:port/partOfThePath
.
Wenn der aufgerufene Dienst einen dynamischen Teil enthält, z. B. a ?param=dynamicValue
, wird dieser Teil dem Endpunkt hinzugefügt. Der Endpunkt kann jedoch häufig unverändert verwendet werden, ohne dass er geändert werden muss.
Es ist wichtig zu verstehen, was ein Endpunkt nicht ist und wie er hilft. Eine alternative Möglichkeit zum Übergeben der in einem Endpunkt gespeicherten Informationen besteht beispielsweise darin, die verschiedenen Teile des Endpunkts in separaten Eigenschaften zu speichern. Zum Beispiel:
hostForServiceA=someIp
portForServiceA=8080
pathForServiceA=/some/service/path
hostForServiceB=someIp
portForServiceB=8080
pathForServiceB=/some/service/path
Oder wenn derselbe Host und Port über mehrere Dienste verteilt ist:
host=someIp
port=8080
pathForServiceA=/some/service/path
pathForServiceB=/some/service/path
In diesen Fällen müsste die vollständige URL in Ihrem Code als solcher erstellt werden:
String url = "http://" + host + ":" + port + pathForServiceA + "?" + dynamicParam + "=" + dynamicValue;
Im Vertrag kann dies als Endpunkt als solcher gespeichert werden
serviceAEndpoint=http://host:port/some/service/path?dynamicParam=
Und ja, oft haben wir den Endpunkt bis einschließlich '=' gespeichert. Dies führte zu Code wie folgt:
String url = serviceAEndpoint + dynamicValue;
Hoffe das bringt etwas Licht.