Che cos'è un endpoint del servizio Web?


323

Supponiamo che il mio servizio web si trovi all'indirizzo http://localhost:8080/foo/mywebservicee il mio WSDL lo sia http://localhost:8080/foo/mywebservice?wsdl.

È http://localhost:8080/foo/mywebserviceun punto finale, vale a dire, è lo stesso che l'URI del mio servizio web o in cui i messaggi SOAP ricevuti e deserializzati?

Potresti spiegarmi per favore di cosa si tratta e quale è lo scopo?

Risposte:


416

Questa è una risposta più breve e, si spera, più chiara ... Sì, l'endpoint è l'URL a cui è possibile accedere al servizio da un'applicazione client. Lo stesso servizio Web può avere più endpoint, ad esempio per renderlo disponibile utilizzando protocolli diversi.


8
@ user137717 No, i siti Web non sono servizi Web. Un servizio Web viene utilizzato principalmente dalle applicazioni, mentre i siti Web sono principalmente destinati agli esseri umani.
lbalazscs,

4
@ user137717 L'endpoint è l'URL a cui è possibile accedere al servizio Web da un'applicazione client. Se non si capisce che cosa è un servizio web, leggere ad esempio questo: stackoverflow.com/questions/226108/...
lbalazscs

1
+1 anche da me e una domanda: perché non chiamarlo (cioè il cosiddetto "endpoint") un "URI di base"? C'è una differenza fondamentale tra un "endpoint" e un "URI di base"? Grazie.
Ritirato il

1
@Withheld Concettualmente esiste una differenza tra un endpoint e il suo indirizzo, ma in pratica generalmente si intende l'indirizzo, poiché in genere è necessario configurare un client con un "endpoint" per trovare il servizio.
lbalazscs,

2
@lbalazscs - Indirizzo IP: 8080 / foo / ShoppingWebservice / Giocattoli , indirizzo IP: 8080 / foo / ShoppingWebservice / Libri ecc. - Come si chiama la parte / Giocattoli, / Libri? Sono anche chiamati endpoint o risorse?
MasterJoe2,

47

Risposta aggiornata, da Peter nei commenti:

Questa è la "vecchia terminologia", utilizzare direttamente la definizione "endepoint" WSDL2 (WSDL2 tradotto "porta" in "endpoint").


Forse troverai una risposta in questo documento: http://www.w3.org/TR/wsdl.html

Un documento WSDL definisce i servizi come raccolte di endpoint di rete o porte. In WSDL, la definizione astratta di endpoint e messaggi è separata dalla loro implementazione concreta della rete o dai collegamenti del formato dei dati. Ciò consente il riutilizzo di definizioni astratte: messaggi, che sono descrizioni astratte dei dati scambiati, e tipi di porte che sono raccolte astratte di operazioni. Il protocollo concreto e le specifiche del formato dei dati per un particolare tipo di porta costituiscono un'associazione riutilizzabile. Una porta viene definita associando un indirizzo di rete a un'associazione riutilizzabile e una raccolta di porte definisce un servizio. Pertanto, un documento WSDL utilizza i seguenti elementi nella definizione dei servizi di rete:

  • Tipi: un contenitore per le definizioni dei tipi di dati che utilizzano un sistema di tipi (come XSD).
  • Messaggio: una definizione astratta e tipizzata dei dati comunicati.
  • Operazione: una descrizione astratta di un'azione supportata dal servizio.
  • Tipo di porta: un insieme astratto di operazioni supportate da uno o più endpoint.
  • Binding: un protocollo concreto e specifiche del formato dei dati per un particolare tipo di porta.
  • Porta: un singolo endpoint definito come una combinazione di un binding e un indirizzo di rete.
  • Servizio: una raccolta di endpoint correlati.

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

L'endpoint è un punto di connessione in cui sono esposti file HTML o pagine del server attivo. Gli endpoint forniscono le informazioni necessarie per indirizzare un endpoint del servizio Web. L'endpoint fornisce un riferimento o una specifica utilizzati per definire un gruppo o una famiglia di proprietà di indirizzamento dei messaggi e fornire caratteristiche dei messaggi end-to-end, come riferimenti per l'origine e la destinazione degli endpoint e l'identità dei messaggi per consentire l'uniformità indirizzamento di messaggi "indipendenti". L'endpoint può essere un PC, un PDA o un terminale punto vendita.


72
"Gli endpoint forniscono le informazioni necessarie per indirizzare un endpoint del servizio Web." Devi amare quella frase! : D
musaul,

2
Questa è la "vecchia terminologia", utilizzare direttamente la definizione "endepoint" WSDL2 (WSDL2 tradotto "porta" in "endpoint").
Peter Krauss,

34

Un endpoint del servizio Web è l'URL che un altro programma userebbe per comunicare con il tuo programma. Per visualizzare il WSDL che si aggiunge ?wsdlall'URL dell'endpoint del servizio Web.

I servizi Web sono per l' interazione da programma a programma , mentre le pagine Web sono per l' interazione da programma a uomo .

Quindi: l'endpoint è: http://www.blah.com/myproject/webservice/webmethod

Pertanto, WSDL è: http://www.blah.com/myproject/webservice/webmethod?wsdl


Per espandere ulteriormente gli elementi di un WSDL, trovo sempre utile confrontarli con il codice:

Un WSDL ha 2 porzioni (fisiche e astratte).

Porzione fisica:

Definizioni - variabili - es: myVar, x, y, ecc.

Tipi - tipi di dati - es: int, double, String, myObjectType

Operazioni - metodi / funzioni - es: myMethod (), myFunction (), ecc.

Messaggi: parametri di input metodo / funzione e tipi di ritorno

  • es: public myObjectType myMethod ( String myVar)

Porttypes - classi (ovvero sono un contenitore per operazioni) - es: MyClass {}, ecc.

Parte astratta:

Binding: si collegano ai porttype e definiscono il protocollo scelto per la comunicazione con questo servizio web. - un protocollo è una forma di comunicazione (quindi testo / SMS, vs. telefono vs. e-mail, ecc.).

Servizio: elenca l'indirizzo in cui un altro programma può trovare il tuo servizio Web (ovvero il tuo endpoint ).


5
Ho trovato "I servizi Web sono per l'interazione da programma a programma, mentre le pagine Web sono per l'interazione da programma a uomo" è un'affermazione molto utile per impedirmi di sconcertare "perché diavolo le persone non chiamerebbero semplicemente il punto finale come URL"
Minnie,

14

Nei progetti passati a cui ho lavorato, l'endpoint era una proprietà relativa. Vale a dire che potrebbe essere stato aggiunto o meno, ma conteneva sempre il file protocol://host:port/partOfThePath.

Se il servizio chiamato avesse una parte dinamica, ad esempio a ?param=dynamicValue, tale parte verrebbe aggiunta all'endpoint. Ma molte volte l'endpoint può essere utilizzato così com'è senza dover essere modificato.

Ciò che è importante capire è ciò che un endpoint non è e come aiuta. Ad esempio, un modo alternativo per passare le informazioni archiviate in un endpoint sarebbe quello di memorizzare le diverse parti dell'endpoint in proprietà separate. Per esempio:

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

O se lo stesso host e la stessa porta su più servizi:

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

In questi casi l'URL completo dovrebbe essere costruito nel tuo codice in quanto tale:

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

Nel contratto questo può essere archiviato come endpoint in quanto tale

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

E sì, molte volte abbiamo archiviato l'endpoint fino a '=' incluso. Questo ha portato a un codice come questo:

String url = serviceAEndpoint + dynamicValue;

Spero che faccia luce.


7

In poche parole, un endpoint è un'estremità di un canale di comunicazione. Quando un'API interagisce con un altro sistema, i punti di contatto di questa comunicazione sono considerati endpoint. Per le API, un endpoint può includere un URL di un server o servizio. Ogni endpoint è la posizione da cui le API possono accedere alle risorse di cui hanno bisogno per svolgere la loro funzione.

Le API funzionano utilizzando "richieste" e "risposte". Quando un'API richiede informazioni da un'applicazione Web o un server Web, riceverà una risposta. Il luogo in cui le API inviano richieste e dove risiede la risorsa, è chiamato endpoint.

Riferimento: https://smartbear.com/learn/performance-monitoring/api-endpoints/


6

Un endpoint viene specificato come url relativo o assoluto che di solito provoca una risposta. Tale risposta è in genere il risultato di un processo sul lato server che, ad esempio, potrebbe produrre una stringa JSON. Tale stringa può quindi essere utilizzata dall'applicazione che ha effettuato la chiamata all'endpoint. Pertanto, in generale gli endpoint sono access point predefiniti, utilizzati all'interno delle reti TCP / IP per avviare un processo e / o restituire una risposta. Gli endpoint potrebbero contenere parametri passati all'interno dell'URL, poiché coppie di valori chiave, più coppie di valori chiave sono separate da una e commerciale, consentendo all'endpoint di chiamare, ad esempio, un processo di aggiornamento / inserimento; pertanto gli endpoint non devono sempre restituire una risposta, ma una risposta è sempre utile, anche solo per indicare il successo o il fallimento di un'operazione.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.