64 lines
1.6 KiB
Markdown
64 lines
1.6 KiB
Markdown
|
## BDLedger API
|
||
|
|
||
|
### Documentation
|
||
|
|
||
|
See [API documentation](..\docs\apis.md)
|
||
|
|
||
|
### Development
|
||
|
|
||
|
#### Generating gRPC code in languages
|
||
|
|
||
|
##### Installling tools
|
||
|
|
||
|
Download the [Protocol Buffers compiler](https://github.com/protocolbuffers/protobuf/releases) (protoc-3.11.4-*) for your platform and add `protoc` to `PATH` environment variable
|
||
|
|
||
|
For generating Go code:
|
||
|
```bash
|
||
|
GIT_TAG="v1.4.0-rc.4"
|
||
|
go get -d -u github.com/golang/protobuf/protoc-gen-go
|
||
|
git -C "$(go env GOPATH)"/src/github.com/golang/protobuf checkout $GIT_TAG
|
||
|
go install github.com/golang/protobuf/protoc-gen-go
|
||
|
```
|
||
|
(Update to google.golang.org/protobuf when https://github.com/grpc/grpc-go/pull/3435 resolves)
|
||
|
|
||
|
For generating Java code: From `bdledger-sdk-java` run `gradle generateProto`
|
||
|
|
||
|
For generating Node.js code, install Node.js then run:
|
||
|
```bash
|
||
|
npm install -g grpc-tools
|
||
|
```
|
||
|
For generating TypeScript definitions, also run:
|
||
|
```bash
|
||
|
npm install -g protoc-gen-ts
|
||
|
```
|
||
|
|
||
|
For frontend JavaScript:
|
||
|
```bash
|
||
|
git clone https://github.com/grpc/grpc-web
|
||
|
cd grpc-web
|
||
|
sudo make install-plugin
|
||
|
```
|
||
|
|
||
|
References:
|
||
|
- [Go Quick Start](https://grpc.io/docs/quickstart/go.html#prerequisites)
|
||
|
- [gRPC Go FAQ](https://github.com/grpc/grpc-go#faq)
|
||
|
|
||
|
**TODO: Look into [protobuf.js](https://github.com/protobufjs/protobuf.js) for Nodes.js and frontend**
|
||
|
**TODO: Look into [Kroto+](https://github.com/marcoferrer/kroto-plus) for Kotlin**
|
||
|
|
||
|
##### Generating code
|
||
|
|
||
|
Run:
|
||
|
```bash
|
||
|
./scripts/gen [go] [nodejs] [ts]
|
||
|
```
|
||
|
|
||
|
#### Generateing documentation
|
||
|
|
||
|
Install Go then run:
|
||
|
|
||
|
```bash
|
||
|
go get -u github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc
|
||
|
./scripts/gen docs
|
||
|
```
|