@@ -228,18 +228,24 @@ <h1 id="architecture">Architecture</h1>
228
228
< h2 id ="overview "> Overview</ h2 >
229
229
< p > The software development kit for OpenStorage is based on < a href ="https://grpc.io/ " target ="_blank "> gRPC</ a > ,
230
230
allowing clients to be automatically generated in multiple languages.</ p >
231
- < p > Different OpenStorage drivers may run the OpenStorage gRPC server on different
232
- locations. Please, refer to your deployed driver documentation for instructions
233
- on how to setup a connection to the gRPC server.</ p >
234
- < p > In this document, examples will refer to both the < a href ="installing.html "> OpenStorage SDK Mock</ a >
235
- and Portworx drivers.</ p >
231
+ < p > Different OpenStorage drivers may run the OpenStorage gRPC and REST servers on
232
+ different locations. Please, refer to your deployed driver documentation for
233
+ instructions on how to setup a connection to the gRPC server.</ p >
236
234
< p > OpenStorage API calls are ment to be idempotent to ensure consistency across calls, unless
237
235
otherwise specified.</ p >
238
236
< h2 id ="protocol-buffers-grpc-source-file "> Protocol Buffers gRPC Source File</ h2 >
239
237
< p > The gRPC bindings are created from < a href ="https://github.com/libopenstorage/openstorage/blob/master/api/api.proto " target ="_blank "> < code > api/api.proto</ code > </ a > file
240
238
available in the OpenStorage github repo.</ p >
239
+ < h2 id ="rest-grpc-gateway "> REST gRPC Gateway</ h2 >
240
+ < p > REST clients can benefit from the SDK server's < a href ="https://github.com/grpc-ecosystem/grpc-gateway " target ="_blank "> gRPC REST Gateway</ a >
241
+ which is able to translate REST calls to gRPC requests.</ p >
242
+ < p > < a href ="https://swagger.io/ " target ="_blank "> Swagger</ a > is also provided by going to the REST gRPC Gateway
243
+ and passing the path < code > /swagger-ui</ code > .</ p >
241
244
< h2 id ="error-handling "> Error Handling</ h2 >
242
245
< p > All API calls use the < a href ="https://github.com/grpc/grpc/blob/master/src/proto/grpc/status/status.proto " target ="_blank "> standard gRPC status</ a > .</ p >
246
+ < h2 id ="openstorage-sdk-implementations "> OpenStorage SDK Implementations</ h2 >
247
+ < p > In this document, examples will refer to both the < a href ="installing.html "> OpenStorage SDK Mock</ a >
248
+ and Portworx OpenStorage drivers.</ p >
243
249
244
250
245
251
</ section >
@@ -283,7 +289,7 @@ <h1 class="search-results-title">No results matching "<span class='search-query'
283
289
< script >
284
290
var gitbook = gitbook || [ ] ;
285
291
gitbook . push ( function ( ) {
286
- gitbook . page . hasChanged ( { "page" :{ "title" :"Architecture" , "level" :"1.3" , "depth" :1 , "next" :{ "title" :"Installing" , "level" :"1.4" , "depth" :1 , "path" :"installing.md" , "ref" :"installing.md" , "articles" :[ ] } , "previous" :{ "title" :"Status" , "level" :"1.2" , "depth" :1 , "path" :"status.md" , "ref" :"status.md" , "articles" :[ ] } , "dir" :"ltr" } , "config" :{ "plugins" :[ "codetabs" , "toggle-chapters" , "toggle-headers" , "edit-link" , "prism" , "github" , "page-toc" , "-highlight" , "-sharing" ] , "styles" :{ "website" :"styles/website.css" , "pdf" :"styles/pdf.css" , "epub" :"styles/epub.css" , "mobi" :"styles/mobi.css" , "ebook" :"styles/ebook.css" , "print" :"styles/print.css" } , "pluginsConfig" :{ "prism" :{ } , "github" :{ "url" :"https://github.com/libopenstorage/openstorage/" } , "search" :{ } , "page-toc" :{ "position" :"top" , "selector" :".markdown-section h1, .markdown-section h2" , "showByDefault" :false } , "codetabs" :{ } , "lunr" :{ "maxIndexSize" :1000000 , "ignoreSpecialCharacters" :false } , "toggle-headers" :{ } , "fontsettings" :{ "theme" :"white" , "family" :"sans" , "size" :2 } , "edit-link" :{ "label" :"Edit this page" , "base" :"https://github.com/libopenstorage/libopenstorage.github.io/tree/master/docs" } , "theme-default" :{ "styles" :{ "website" :"styles/website.css" , "pdf" :"styles/pdf.css" , "epub" :"styles/epub.css" , "mobi" :"styles/mobi.css" , "ebook" :"styles/ebook.css" , "print" :"styles/print.css" } , "showLevel" :true } , "toggle-chapters" :{ } } , "theme" :"default" , "pdf" :{ "pageNumbers" :true , "fontSize" :12 , "fontFamily" :"Arial" , "paperSize" :"a4" , "chapterMark" :"pagebreak" , "pageBreaksBefore" :"/" , "margin" :{ "right" :62 , "left" :62 , "top" :56 , "bottom" :56 } } , "structure" :{ "langs" :"LANGS.md" , "readme" :"README.md" , "glossary" :"GLOSSARY.md" , "summary" :"SUMMARY.md" } , "variables" :{ } , "title" :"OpenStorage API" , "gitbook" :">=3.2.1" } , "file" :{ "path" :"arch.md" , "mtime" :"2018-04-30T19:44:09.808Z" , "type" :"markdown" } , "gitbook" :{ "version" :"3.2.3" , "time" :"2018-05-07T20:00:55.138Z" } , "basePath" :"." , "book" :{ "language" :"" } } ) ;
292
+ gitbook . page . hasChanged ( { "page" :{ "title" :"Architecture" , "level" :"1.3" , "depth" :1 , "next" :{ "title" :"Installing" , "level" :"1.4" , "depth" :1 , "path" :"installing.md" , "ref" :"installing.md" , "articles" :[ ] } , "previous" :{ "title" :"Status" , "level" :"1.2" , "depth" :1 , "path" :"status.md" , "ref" :"status.md" , "articles" :[ ] } , "dir" :"ltr" } , "config" :{ "plugins" :[ "codetabs" , "toggle-chapters" , "toggle-headers" , "edit-link" , "prism" , "github" , "page-toc" , "-highlight" , "-sharing" ] , "styles" :{ "website" :"styles/website.css" , "pdf" :"styles/pdf.css" , "epub" :"styles/epub.css" , "mobi" :"styles/mobi.css" , "ebook" :"styles/ebook.css" , "print" :"styles/print.css" } , "pluginsConfig" :{ "prism" :{ } , "github" :{ "url" :"https://github.com/libopenstorage/openstorage/" } , "search" :{ } , "page-toc" :{ "position" :"top" , "selector" :".markdown-section h1, .markdown-section h2" , "showByDefault" :false } , "codetabs" :{ } , "lunr" :{ "maxIndexSize" :1000000 , "ignoreSpecialCharacters" :false } , "toggle-headers" :{ } , "fontsettings" :{ "theme" :"white" , "family" :"sans" , "size" :2 } , "edit-link" :{ "label" :"Edit this page" , "base" :"https://github.com/libopenstorage/libopenstorage.github.io/tree/master/docs" } , "theme-default" :{ "styles" :{ "website" :"styles/website.css" , "pdf" :"styles/pdf.css" , "epub" :"styles/epub.css" , "mobi" :"styles/mobi.css" , "ebook" :"styles/ebook.css" , "print" :"styles/print.css" } , "showLevel" :true } , "toggle-chapters" :{ } } , "theme" :"default" , "pdf" :{ "pageNumbers" :true , "fontSize" :12 , "fontFamily" :"Arial" , "paperSize" :"a4" , "chapterMark" :"pagebreak" , "pageBreaksBefore" :"/" , "margin" :{ "right" :62 , "left" :62 , "top" :56 , "bottom" :56 } } , "structure" :{ "langs" :"LANGS.md" , "readme" :"README.md" , "glossary" :"GLOSSARY.md" , "summary" :"SUMMARY.md" } , "variables" :{ } , "title" :"OpenStorage API" , "gitbook" :">=3.2.1" } , "file" :{ "path" :"arch.md" , "mtime" :"2018-05-07T20:19:09.544Z" , "type" :"markdown" } , "gitbook" :{ "version" :"3.2.3" , "time" :"2018-05-07T20:26:35.679Z" } , "basePath" :"." , "book" :{ "language" :"" } } ) ;
287
293
} ) ;
288
294
</ script >
289
295
</ div >
0 commit comments