Differenza tra il server REST e il client REST

1

Sto leggendo articoli su REST che includono un tutorial. Ho visto questo sito link , e c'è una parte per spiegare il resto come:

In a REST based architecture, you have a REST server which provides access to the resources. A REST client can access and modify the REST resources.

Ora ho cercato qual è il significato del server REST e del client REST ma non sono riuscito a trovare una buona risposta. Qualcuno potrebbe spiegarli?

    
posta grapes berry 05.09.2017 - 12:43
fonte

4 risposte

8

Il server espone l'API e il client ne fa uso.

Ad esempio, Twitter ha dati che desidera condividere (tra cui Tweets, tra l'altro), quindi espone un'API che è servita da un server REST (diversi, con ogni probabilità). Vuoi scrivere un'app mobile che utilizza tale API per recuperare ed esporre i tweet a un utente, la tua app mobile sarebbe il client REST.

    
risposta data 05.09.2017 - 12:53
fonte
5

Il modo più semplice per pensarci è questo:

  • Il server risponde alle richieste
  • Il client rende richieste

Quando parli di server e client, è sempre relativo al codice che stai discutendo al momento. Il codice che ha il server Web che risponde alle richieste è sempre la porzione del server. Il codice che sta contattando il web server è sempre il client.

    
risposta data 05.09.2017 - 20:32
fonte
2

Oltre alle risposte @Paul e @Berin, che sono molto corrette e concise.

Now I've searched what is the meaning of REST server and REST client but I could not find a good answer. Could someone explain them?

La risposta breve è

La risposta un po 'più lunga è

  • I server RESTful (applicazioni) sono applicazioni in grado di fornire noi con risorse e gestione di queste risorse su WWW che utilizza come protocollo di comunicazione le HTTP specifiche .

  • Client RESTful (applicazioni) sono applicazioni in grado di consumare e operare con risorse esposte dai server RESTful, nelle stesse sedi .

In parole povere,

  • Le applicazioni RESTful sono quelle che abbracciano totalmente le funzionalità dell'architettura WWW .

Leonard Richardson e Samy Ruby hanno inventato uno stile architettonico che comprende tutti questi presupposti e vincoli. Architettura orientata alle risorse (book ). La sua interpretazione delle applicazioni REST (API e servizi) è stata ampiamente adottata dalla comunità e ha promosso la proliferazione di libri, blog e articoli riguardanti questo argomento. Avendo in comune tutti loro, la tesi Fielding.

Disparità delle implementazioni RESTful

Laggiù, nel selvaggio mercato delle applicazioni RESTful, vedremo le applicazioni che affermano di essere RESTful quando la verità è che non riescono completamente a rispettare i vincoli di Fielding. 1

Compilare tutti i vincoli architettonici di REST non è esente da compromessi. La comunità ha dovuto adottare un certo grado di flessibilità al momento di implementare questi vincoli. Come al solito, è una questione di convenienza e costi-benefici.

Tra i vincoli, l'interfaccia Uniform si distingue dagli altri. Questo vincolo è particolarmente rilevante perché è quello che ci fa utilizzare la semantica HTTP e contenuti per che rappresentano la nostra attività (servizi, modelli, ecc.) in modo RESTful. 2

Ogni implementazione di REST differisce notevolmente da un progetto all'altro e da un fornitore all'altro. È comprensibile dal momento che ognuno di loro deve affrontare diversi requisiti, esigenze e risorse. In definitiva, i requisiti e le esigenze prevalgono sul resto.

1: Significa che non sono RESTful? Bene, è aperto a discussioni e opinioni. Entrambe le cose sono fuori tema qui.

2: Un esempio della sua rilevanza è il gran numero di articoli, guide o domande in SE e SO su come implementare con successo URIs , metodi Http, stato HTTP, ecc; per soddisfare con successo le aspettative del business.

    
risposta data 06.09.2017 - 10:56
fonte
1

Now I've searched what is the meaning of REST server and REST client but I could not find a good answer. Could someone explain them?

In caso di dubbio, vai alla fonte: tesi di Fielding dove definisce lo stile architettonico REST.

In Capitolo 5 , descrive Client-Server come il primo dei vincoli.

Separation of concerns is the principle behind the client-server constraints. By separating the user interface concerns from the data storage concerns, we improve the portability of the user interface across multiple platforms and improve scalability by simplifying the server components. Perhaps most significant to the Web, however, is that the separation allows the components to evolve independently, thus supporting the Internet-scale requirement of multiple organizational domains.

La descrizione dello stile architettonico Client-Server si trova in Capitolo 3 , che Fielding attribuisce a Gregory Andrews

A client is a triggering process; a server is a reactive process. Clients make requests that trigger reactions from servers. Thus, a client initiates activity at times of its choosing; it often then delays until its request has been serviced. On the other hand, a server waits for requests to be made and then reacts to them. A server is usually a non-terminating process and often provides service to more than one client.

In breve, un client REST e un server REST sono entrambi connettori

The essential difference between the two is that a client initiates communication by making a request, whereas a server listens for connections and responds to requests in order to supply access to its services. A component may include both client and server connectors.

Si noti che Fielding è piuttosto preciso nella sua definizione qui; usa il termine componenti per descrivere i ruoli che vengono riprodotti.

A user agent uses a client connector to initiate a request and becomes the ultimate recipient of the response. The most common example is a Web browser....

An origin server uses a server connector to govern the namespace for a requested resource. It is the definitive source for representations of its resources and must be the ultimate recipient of any request that intends to modify the value of its resources....

Intermediary components act as both a client and a server....

Nel discorso comune, penso che troverete che la maggior parte capisce il client REST per indicare il componente agente utente e il server REST per indicare il componente server di origine.

    
risposta data 28.09.2017 - 00:12
fonte

Leggi altre domande sui tag