2012-01-10 18 views
11

Desidero implementare un servizio Web REST utilizzando Java & protobuf.REST Servizio Web Java con protobuf

Qualcuno può indicarmi dove iniziare o come implementarlo? Qualche buon tutorial ??

Grazie!

risposta

3

Puoi vedere all'interno del post come possiamo creare un servizio web JX-RS che sta producendo Buffer del protocollo Google in risposta. Il codice sorgente è disponibile at my blog

quello che sto facendo è la conversione l'oggetto buffer di protocollo in array di byte da lato server e l'invio è array tramite il servizio: codice di servizio è al di sotto, popolando oggetto e la messa in risposta.

UserDTO.User user = UserDTO.User.newBuilder(). //protocol buffer object 
      setSessionId(id). 
      setName("l070020"). 
      build(); 
return Response.ok(user.toByteArray(),MediaType.APPLICATION_OCTET_STREAM).status(200).build(); 

L'oggetto del protocollo buffer è in grado di analizzare e popolare l'oggetto del protocollo tramite lo stream. Quindi sto usando in streaming per la comunicazione dei dati. Sul lato client sto facendo connessione al servizio web

HttpGet request = new HttpGet("http://localhost:8080/maven.work/service/mainServices/get_user"); 
request.addHeader("accept","application/octet-stream"); 
HttpResponse response = httpClient.execute(request); 

buffer di protocollo è costruito in modo da analizzare flusso, sotto sto parsing flusso dalla risposta

User user = User.parseFrom(response.getEntity().getContent()); 

Allo stesso modo è possibile inviare il buffer di protocollo oggetto sotto forma di array di byte su server e server può ottenerlo dal flusso di richiesta servlet HTTP e analizzarlo come fa il client.

+1

Lone link è [considerato una risposta scarsa] (http://stackoverflow.com/faq#deletion) poiché non ha significato da solo e la risorsa target non è garantita per essere viva in futuro. [Sarebbe preferibile] (http://meta.stackexchange.com/q/8259) includere qui le parti essenziali della risposta e fornire il link per riferimento. – j0k

+1

In aggiunta a ciò che j0k ha annotato sopra, si prega di leggere attentamente le [FAQ sull'autopromozione] (http://stackoverflow.com/faq#promotion) attentamente. Si noti inoltre che * è * richiesto * di pubblicare un disclaimer ogni volta che si collega al proprio sito/prodotto. –

+0

Nel link sopra ho scritto la soluzione completa e il codice, ma se pensate che quel post non è garantito per essere vivo metto qui le linee guida del codice e metto il link come riferimento. Grazie per avermi guidato. Sono nuovo a StackOverflow. –