1.
Purpose:
Protocol buffers are Google's language-neutral,
platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and
simpler. You define how you want your data to be structured
once and then you can use special generated source code to easily write and
read your structured data to and from a variety of data streams. Protocol Buffers are a way of encoding structured data in an
efficient yet extensible format. Google uses Protocol Buffers for almost all of
its internal RPC protocols and file formats. The blow languages support
reading/writing data via Google protocol buffers.
·
C++
·
JAVA
·
Python
2.
Prerequisite :
·
Create a web service project. I am
using maven for web project creation.
·
Here is an example Maven
base JX-RS resteasy web service project.
3.
Development:
·
First we will create a (.proto)
file(s).This File(s) will represent object and we can compile (.proto)
file into class (es) of any of above mentioned languages. I am going to
choose java for this tutorial.
·
After creating a maven base web
project and installing jx-rs web service into that project. I am creating
a user.proto file and I will compile it to make UserDTO.java. Server and client
side program will use this file to as stream to communicate (read/write data).
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.4.1</version>
</dependency>
option java_outer_classname = "UserDTO";option java_package = "com.maven.work.dto";
message User {required string sessionId = 1;optional string name = 2;repeated string authorites = 3;}
- To Compile the user.proto file use protoc.exe
- Command is :
protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/user.proto
- I am using windows xp and I used this command:
protoc -I=./ --java_out=C:\\ ./user.proto
- Now use this User.Java to fill user session id and name. Take a look into service code
- Name of service is ( /get_user )
- You can see in image how I am building the user object and returning
- You can get the DTO with this url .http://localhost:8080/maven.work/service/mainServices/get_user
- Client side need few setting before getting Object.
- Look this post Maven Client and Google protocol Buffer
- Get Source Code From Source Code.
No comments:
Post a Comment