{"id":23359,"date":"2024-09-30T06:40:01","date_gmt":"2024-09-29T23:40:01","guid":{"rendered":"https:\/\/huongdanjava.com\/?p=23359"},"modified":"2024-09-30T06:40:01","modified_gmt":"2024-09-29T23:40:01","slug":"consume-services-in-grpc-using-code","status":"publish","type":"post","link":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html","title":{"rendered":"Consume services in gRPC using code"},"content":{"rendered":"<p>In <a href=\"https:\/\/huongdanjava.com\/introduction-to-grpc.html\" target=\"_blank\" rel=\"noopener\">the previous tutorial<\/a>, after implementing the gRPC server, I used the Postman tool to call the gRPC server services. If we use code, how should we do it? In this tutorial, I will guide you to do this!<\/p>\n<p>First, I will create a new Maven project as an example:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-23361 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2024\/09\/consume-services-in-grpc-using-code-1.png\" alt=\"\" width=\"764\" height=\"598\" \/><\/p>\n<p>This example application will consume the HelloService which I implemented in <a href=\"https:\/\/huongdanjava.com\/introduction-to-grpc.html\" target=\"_blank\" rel=\"noopener\">the previous tutorial<\/a>!<\/p>\n<p>gRPC uses the concept of a channel to create a connection to the gRPC server, client applications will use this channel to create stubs to interact with the gRPC server. When using <a href=\"https:\/\/huongdanjava.com\/generate-java-code-for-service-contract-in-grpc-using-protocol-buffers-maven-plugin.html\" target=\"_blank\" rel=\"noopener\">the Protocol Buffers Maven Plugin<\/a> to generate Java code from the service contract .proto file, this plugin also generates Stub classes and we can use these Stub classes to communicate with the gRPC server.<\/p>\n<p>For the example of this tutorial, I also use the service contract .proto file and configure the Protocol Buffers Maven plugin as in <a href=\"https:\/\/huongdanjava.com\/introduction-to-grpc.html\" target=\"_blank\" rel=\"noopener\">the previous tutorial<\/a>.<\/p>\n<p>The Stub classes that the Protocol Buffers Maven Plugin generates are in the HelloServiceGrpc class:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-23362 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2024\/09\/consume-services-in-grpc-using-code-2.png\" alt=\"\" width=\"700\" height=\"963\" \/><\/p>\n<p>Now, to consume the HelloService of the gRPC server in <a href=\"https:\/\/huongdanjava.com\/introduction-to-grpc.html\" target=\"_blank\" rel=\"noopener\">the previous tutorial<\/a>, we will initialize the channel object using the host and port information of the gRPC server first:<\/p>\n<pre class=\"lang:java decode:true\">package com.huongdanjava.grpc;\r\n\r\nimport io.grpc.ManagedChannel;\r\nimport io.grpc.ManagedChannelBuilder;\r\n\r\npublic class Application {\r\n\r\n  public static void main(String[] args) {\r\n    ManagedChannel channel = ManagedChannelBuilder.forAddress(\"localhost\", 8080)\r\n        .usePlaintext()\r\n        .build();\r\n  }\r\n}\r\n<\/pre>\n<p>The ManagedChannel class implements the gRPC Java&#8217;s Channel interface and we use the ManagedChannelBuilder class to create an object of the ManagedChannel class.<\/p>\n<p>By default, the gRPC channel will use a secure connection to connect to the gRPC server. You can configure it to use plaintext by using the usePlaintext() method of the ManagedChannelBuilder class.<\/p>\n<p>gRPC supports synchronous and asynchronous calls to the gRPC server. Synchronous means the client will call the gRPC server and wait for a response, while asynchronous means the response will return asynchronously. Corresponding to the 2 call mechanisms, we will have corresponding Stub classes. For my example, you can use the HelloServiceBlockingStub class to call the gRPC server synchronously, and if you want to use asynchronous, you can use the HelloServiceStub class!<\/p>\n<p>I will use synchronous as follows:<\/p>\n<pre class=\"lang:java\">package com.huongdanjava.grpc;\r\n\r\nimport io.grpc.ManagedChannel;\r\nimport io.grpc.ManagedChannelBuilder;\r\n\r\npublic class Application {\r\n\r\n  public static void main(String[] args) {\r\n    ManagedChannel channel = ManagedChannelBuilder.forAddress(\"localhost\", 8080)\r\n        .usePlaintext()\r\n        .build();\r\n\r\n    HelloServiceGrpc.HelloServiceBlockingStub stub\r\n        = HelloServiceGrpc.newBlockingStub(channel);\r\n\r\n    HelloResponse helloResponse = stub.hello(HelloRequest.newBuilder()\r\n        .setName(\"Khanh\")\r\n        .build());\r\n\r\n    System.out.println(helloResponse.getMessage());\r\n\r\n    channel.shutdown();\r\n  }\r\n}\r\n<\/pre>\n<p>We will create a synchronous stub using the static method newBlockingStub() of the HelloServiceGrpc class. The parameter of this newBlockingStub() method is the channel to the gRPC server that we need to interact with.<\/p>\n<p>After having the stub object, we can now call the hello operation of the gRPC server using this stub object. We will build a request message and receive a response message from the gRPC server.<\/p>\n<p>The result when I run this example is as follows:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-23363 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2024\/09\/consume-services-in-grpc-using-code-3.png\" alt=\"\" width=\"700\" height=\"548\" \/><\/p>\n<p>So we have successfully consumed the hello operation of the gRPC server!<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;23359&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;4&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;Consume services in gRPC using code&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>In the previous tutorial, after implementing the gRPC server, I used the Postman tool to call the gRPC server services. If we use code, how should we do it? In this tutorial, I will guide you to do this! First, I will create a new&hellip; <a href=\"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":23196,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2409],"tags":[],"class_list":["post-23359","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-grpc-en","clearfix"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Consume services in gRPC using code - Huong Dan Java<\/title>\n<meta name=\"description\" content=\"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh h\u01b0\u1edbng d\u1eabn c\u00e1c b\u1ea1n c\u00e1ch consume c\u00e1c service trong gRPC s\u1eed d\u1ee5ng code.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Consume services in gRPC using code - Huong Dan Java\" \/>\n<meta property=\"og:description\" content=\"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh h\u01b0\u1edbng d\u1eabn c\u00e1c b\u1ea1n c\u00e1ch consume c\u00e1c service trong gRPC s\u1eed d\u1ee5ng code.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html\" \/>\n<meta property=\"og:site_name\" content=\"Huong Dan Java\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-29T23:40:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2024\/08\/grpc.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"880\" \/>\n\t<meta property=\"og:image:height\" content=\"704\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Khanh Nguyen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/KhanhNguyenJ\" \/>\n<meta name=\"twitter:site\" content=\"@KhanhNguyenJ\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Khanh Nguyen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/consume-services-in-grpc-using-code.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/consume-services-in-grpc-using-code.html\"},\"author\":{\"name\":\"Khanh Nguyen\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"headline\":\"Consume services in gRPC using code\",\"datePublished\":\"2024-09-29T23:40:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/consume-services-in-grpc-using-code.html\"},\"wordCount\":430,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/consume-services-in-grpc-using-code.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/grpc.jpg\",\"articleSection\":[\"gRPC\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/consume-services-in-grpc-using-code.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/consume-services-in-grpc-using-code.html\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/consume-services-in-grpc-using-code.html\",\"name\":\"Consume services in gRPC using code - Huong Dan Java\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/consume-services-in-grpc-using-code.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/consume-services-in-grpc-using-code.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/grpc.jpg\",\"datePublished\":\"2024-09-29T23:40:01+00:00\",\"description\":\"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh h\u01b0\u1edbng d\u1eabn c\u00e1c b\u1ea1n c\u00e1ch consume c\u00e1c service trong gRPC s\u1eed d\u1ee5ng code.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/consume-services-in-grpc-using-code.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/consume-services-in-grpc-using-code.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/consume-services-in-grpc-using-code.html#primaryimage\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/grpc.jpg\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/grpc.jpg\",\"width\":880,\"height\":704},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/consume-services-in-grpc-using-code.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/huongdanjava.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Consume services in gRPC using code\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/\",\"name\":\"Huong Dan Java\",\"description\":\"Java development tutorials\",\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/huongdanjava.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\",\"name\":\"Khanh Nguyen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"width\":1267,\"height\":1517,\"caption\":\"Khanh Nguyen\"},\"logo\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\"},\"description\":\"I love Java and everything related to Java.\",\"sameAs\":[\"https:\\\/\\\/huongdanjava.com\",\"https:\\\/\\\/www.facebook.com\\\/nhkhanh2406\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/KhanhNguyenJ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Consume services in gRPC using code - Huong Dan Java","description":"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh h\u01b0\u1edbng d\u1eabn c\u00e1c b\u1ea1n c\u00e1ch consume c\u00e1c service trong gRPC s\u1eed d\u1ee5ng code.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html","og_locale":"en_US","og_type":"article","og_title":"Consume services in gRPC using code - Huong Dan Java","og_description":"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh h\u01b0\u1edbng d\u1eabn c\u00e1c b\u1ea1n c\u00e1ch consume c\u00e1c service trong gRPC s\u1eed d\u1ee5ng code.","og_url":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html","og_site_name":"Huong Dan Java","article_publisher":"https:\/\/www.facebook.com\/nhkhanh2406","article_author":"https:\/\/www.facebook.com\/nhkhanh2406","article_published_time":"2024-09-29T23:40:01+00:00","og_image":[{"width":880,"height":704,"url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2024\/08\/grpc.jpg","type":"image\/jpeg"}],"author":"Khanh Nguyen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/KhanhNguyenJ","twitter_site":"@KhanhNguyenJ","twitter_misc":{"Written by":"Khanh Nguyen","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html#article","isPartOf":{"@id":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html"},"author":{"name":"Khanh Nguyen","@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"headline":"Consume services in gRPC using code","datePublished":"2024-09-29T23:40:01+00:00","mainEntityOfPage":{"@id":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html"},"wordCount":430,"commentCount":0,"publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"image":{"@id":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2024\/08\/grpc.jpg","articleSection":["gRPC"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html","url":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html","name":"Consume services in gRPC using code - Huong Dan Java","isPartOf":{"@id":"https:\/\/huongdanjava.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html#primaryimage"},"image":{"@id":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2024\/08\/grpc.jpg","datePublished":"2024-09-29T23:40:01+00:00","description":"Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh h\u01b0\u1edbng d\u1eabn c\u00e1c b\u1ea1n c\u00e1ch consume c\u00e1c service trong gRPC s\u1eed d\u1ee5ng code.","breadcrumb":{"@id":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html#primaryimage","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2024\/08\/grpc.jpg","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2024\/08\/grpc.jpg","width":880,"height":704},{"@type":"BreadcrumbList","@id":"https:\/\/huongdanjava.com\/consume-services-in-grpc-using-code.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/huongdanjava.com\/"},{"@type":"ListItem","position":2,"name":"Consume services in gRPC using code"}]},{"@type":"WebSite","@id":"https:\/\/huongdanjava.com\/#website","url":"https:\/\/huongdanjava.com\/","name":"Huong Dan Java","description":"Java development tutorials","publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/huongdanjava.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d","name":"Khanh Nguyen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","width":1267,"height":1517,"caption":"Khanh Nguyen"},"logo":{"@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg"},"description":"I love Java and everything related to Java.","sameAs":["https:\/\/huongdanjava.com","https:\/\/www.facebook.com\/nhkhanh2406","https:\/\/x.com\/https:\/\/twitter.com\/KhanhNguyenJ"]}]}},"_links":{"self":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/23359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/comments?post=23359"}],"version-history":[{"count":3,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/23359\/revisions"}],"predecessor-version":[{"id":23365,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/23359\/revisions\/23365"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media\/23196"}],"wp:attachment":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media?parent=23359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/categories?post=23359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/tags?post=23359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}